Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
LXC Update Ճ౻ହจ 2015-02-18 Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 1 / 29
Slide 2
Slide 2 text
୭? Ճ౻ହจ http://www.ten-forward.ws/ @ten forward http://gplus.to/tenforward https://github.com/tenforward http://d.hatena.ne.jp/defiant/ (ٕज़ϒϩά) Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 2 / 29
Slide 3
Slide 3 text
୭? ϑΝʔεταʔόɹج൫։ൃ෦ɹॴଐ ৽ϒϥϯυͷϗεςΟϯάαʔϏε͡Ί·ͨ͠ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 3 / 29
Slide 4
Slide 4 text
୭? 2010 ࠒʹ cgroup ͷௐࠪΛ࢝Ίͨͷ͕͖͔͚ͬͰίϯςφ पลΛ৭ʑ͓͔͚ͬͯͨͷ͕ߴͯ͜͡ͷษڧձΛͬͯ·͢ LXC ͷίϛοτ ຊޠ man pages / ࠷ۙগ͠ίʔυ linuxcontainers.org ༁ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 4 / 29
Slide 5
Slide 5 text
୭? Plamo Linux ϝϯςφ LXC ͰֶͿίϯςφೖɹʔܰྔԾԽڥΛ࣮ݱ͢Δٕज़ gihyo.jp Ͱ࿈ࡌ ʲվగ৽൛ʳLinux ΤϯδχΞཆಡຊ (ٕज़ධࣾ) Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 5 / 29
Slide 6
Slide 6 text
ࠓͷ༰ LXCFS LXC 1.1 LXD ͦͷଞ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 6 / 29
Slide 7
Slide 7 text
LXCFS LXC ༻ͷίϯςφͷΛղܾ͢Δ FUSE ϑΝΠϧγε ςϜ ඇಛݖίϯςφͰ cgroupfs ͬΆ͍πϦʔΛίϯςφʹ࠶ݱ ίϯςφͷ cpuinfo, meminfo, stat, uptime Λίϯςφ ͚ͷ༰ʹݟͤΔ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 7 / 29
Slide 8
Slide 8 text
LXCFS ͍ํ $ sudo lxcfs -s -f -o allow_other /var/lib/lxcfs lxcfs $ ls /var/lib/lxcfs/ cgroup proc $ ls /var/lib/lxcfs/proc/ cpuinfo meminfo stat uptime $ ls /var/lib/lxcfs/cgroup/ blkio cpuacct devices hugetlb name=systemd cpu cpuset freezer memory perf_event Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 8 / 29
Slide 9
Slide 9 text
LXCFS LXCFS ͷ proc ҎԼͷϑΝΠϧͦΕͧΕίϯςφͷ /proc ҎԼʹόΠϯυϚϯτ͞ΕΔ ϗετͷ cgroupfs ͷίϯςφʹରԠ͢Δ cgroup ͔Βಘͨ ใΛݩʹίϯςφͷ֤ϑΝΠϧΛੜ LXCFS ͷ cgroup ҎԼͷσΟϨΫτϦίϯςφͷ /sys/fs/cgroup ҎԼʹόΠϯυϚϯτ͞ΕΔ systemd ͕ίϯςφͰಈ͘߹ʹඞཁ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 9 / 29
Slide 10
Slide 10 text
LXCFS ͜Ε·Ͱ $ sudo grep cgroup /var/lib/lxc/ct01/config lxc.cgroup.memory.limit_in_bytes = 256M (ϝϞϦ্ݶ 256MB ʹઃఆ) $ sudo lxc-start -n ct01 -d (ίϯςφىಈ) $ grep MemTotal /proc/meminfo (ϗετͷϝϞϦྔ) MemTotal: 1017908 kB $ sudo lxc-attach -n ct01 -- grep MemTotal /proc/meminfo MemTotal: 1017908 kB (ϗετͷϝϞϦྔͦͷ··) LXCFS Λͬͨ߹ $ sudo grep cgroup /var/lib/lxc/ct01/config lxc.cgroup.memory.limit_in_bytes = 256M (ϝϞϦ্ݶ 256MB ʹઃఆ) $ sudo lxc-start -n ct01 (ίϯςφىಈ) $ grep MemTotal /proc/meminfo (ϗετͷϝϞϦྔ) MemTotal: 1017792 kB $ sudo lxc-attach -n ct01 -- grep MemTotal /proc/meminfo MemTotal: 262144 kB (cgroup Ͱઃఆ੍ͨ͠ݶͷʹͳ͍ͬͯΔ) Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 10 / 29
Slide 11
Slide 11 text
ࠓͷ༰ LXCFS LXC 1.1 LXD ͦͷଞ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 11 / 29
Slide 12
Slide 12 text
LXC 1.1 LXC 1.1.0 2015 1 ݄ 30 ʹϦϦʔε 2016 1 ݄ or ࣍ͷϦϦʔε͕͞Ε͍ͯͳ͍߹ϦϦʔε ͷ 2 ϲ݄ޙ·Ͱαϙʔτ LXC 1.0 ܥྻ 2019 4 ݄·Ͱαϙʔτ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 12 / 29
Slide 13
Slide 13 text
LXC 1.1 ৽ػೳ CRIU ΛͬͨίϯςφͷνΣοΫϙΠϯτɾϦετΞػೳ ͷαϙʔτ ίϯςφͷ init ͱͯ͠ systemd Λαϙʔτ cgmanager, lxcfs ͱΈ߹ΘͤͯඇಛݖίϯςφͰಈ࡞ Մೳ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 13 / 29
Slide 14
Slide 14 text
LXC 1.1 ʙ CRIU ʹΑΔC/R lxc-checkpoint ϓϩάϥϜʹΑΔνΣοΫϙΠϯτɾϦετΞ ubuntu@criu1:~$ sudo lxc-start -n ct01 ubuntu@criu1:~$ sudo lxc-checkpoint -v -n ct01 -s -D /tmp/checkpoint (νΣο ΫϙΠϯτॲཧޙʹίϯςφఀࢭ) ubuntu@criu1:~$ sudo lxc-ls --fancy NAME STATE IPV4 IPV6 GROUPS AUTOSTART -------------------------------------------- ct01 STOPPED - - - NO ubuntu@criu1:~$ ls /tmp/criu/ cgroup.img fdinfo-17.img inventory.img pages-15.img core-170.img fdinfo-18.img ipcns-msg-9.img pages-16.img core-176.img fdinfo-2.img ipcns-sem-9.img pages-17.img core-1.img fdinfo-3.img ipcns-shm-9.img pages-1.img core-260.img fdinfo-4.img ipcns-var-9.img pages-2.img core-261.img fdinfo-5.img iptables-8.img pages-3.img : (snip) ubuntu@criu1:~$ sudo rsync -avz --devices --rsync-path="sudo rsync" \ /var/lib/lxc/ct01 ubuntu@192.168.122.26:/var/lib/lxc ubuntu@criu1:~$ sudo rsync -avz --rsync-path="sudo rsync" \ /tmp/checkpoint ubuntu@192.168.122.26:/tmp Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 14 / 29
Slide 15
Slide 15 text
LXC 1.1 ʙ CRIU ʹΑΔC/R lxc-checkpoint ϓϩάϥϜʹΑΔνΣοΫϙΠϯτɾϦετΞ ubuntu@criu2:~$ ls /tmp/criu/ cgroup.img fdinfo-3.img ipcns-sem-9.img pages-3.img core-1.img fdinfo-4.img ipcns-shm-9.img pages-4.img core-255.img fdinfo-5.img ipcns-var-9.img pages-5.img core-260.img fdinfo-6.img iptables-8.img pages-6.img : (snip) ubuntu@criu2:~$ sudo lxc-checkpoint -n ct01 -r -D /tmp/checkpoint -v -d ubuntu@criu2:~$ sudo lxc-ls -f NAME STATE IPV4 IPV6 GROUPS AUTOSTART -------------------------------------------------- ct01 RUNNING 10.0.3.200 - - NO Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 15 / 29
Slide 16
Slide 16 text
LXC 1.1 ͦͷଞมߋ lxc-start σʔϞϯϞʔυ͕σϑΥϧτʹ lxc-execute ίϯςφʹ lxc-init ΛόΠϯυϚϯτ͢Δ Α͏ʹ lxc.autodev ͕σϑΥϧτ༗ޮʹɻ࠷ݶͷ /dev ҎԼΛ LXC ͕४උ lxc-snapshot ͷεφοϓγϣοτͷอଘॴ͕ίϯςφσΟ ϨΫτϦʹ openvswitch ϒϦοδͷαϙʔτ lxc-top, lxc-device ίϚϯυ͕ C όΠφϦʹ ͦͷଞଟ (https://linuxcontainers.org/ja/lxc/news/) Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 16 / 29
Slide 17
Slide 17 text
ࠓͷ༰ LXCFS LXC 1.1 LXD ͦͷଞ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 17 / 29
Slide 18
Slide 18 text
LXD ߏ REST API Λఏڙ͢ΔσʔϞϯ ίϚϯυϥΠϯΫϥΠΞϯτ OpenStack Nova ϓϥάΠϯ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 18 / 29
Slide 19
Slide 19 text
LXD ػೳ APIɺίϚϯυϥΠϯπʔϧΛͬͯωοτϫʔΫ্ͷίϯ ςφͷཧ͕Մೳ Πϝʔδϕʔε ϥΠϒϚΠάϨʔγϣϯ LXD ϗετΛ OpenStack ίϯϐϡʔτϊʔυʹ LXC ͷ Go όΠϯσΟϯάΛͬͯ liblxc ܦ༝ͰίϯςφΛૢ࡞ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 19 / 29
Slide 20
Slide 20 text
LXD LXD ͷىಈ lxd ͷىಈ $ mkdir -p /var/lib/lxd $ lxd & ެࣜจॻҰൠϢʔβͰىಈ͍ͯ͠Δɻͦͷ߹ඇಛݖί ϯςφ͚ͷ४උ͕ඞཁ subuid, subgid ͷઃఆ chown $USER:$USER /var/lib/lxd Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 20 / 29
Slide 21
Slide 21 text
LXD ϩʔΧϧͷίϯςφͷૢ࡞ ίϯςφ࡞ɺىಈ $ lxc init ubuntu test01 (ίϯςφͷ࡞ɺΠϝʔδΛऔಘͯ͠ίϯςφ࡞) $ lxc list (Ұཡ) test01 $ lxc start test01 (ίϯςφىಈ) ίϯςφͰίϚϯυͷ࣮ߦ $ lxc exec test01 -- /bin/uname -a Linux test01 3.19.0-plamo64-karma #2 SMP PREEMPT Mon Feb 9 16:13:40 JST 2015 x86_ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 21 / 29
Slide 22
Slide 22 text
LXD ϦϞʔτ͔Βͷૢ࡞Λड͚͚Δ࣌ͷ LXD ͷىಈ lxd ͷىಈ $ lxd --tcp=10.200.200.200:8443 & $ lxc config set pasword (ύεϫʔυͷઃఆ) Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 22 / 29
Slide 23
Slide 23 text
LXD ϦϞʔτͷ LXD ϗετͷૢ࡞Λߦ͏ (https://asciinema.org/a/16544) ϦϞʔτϗετͷొ $ lxc remote add lxdhost 10.200.200.200:8443 (10.200.200.200 ͷϗετΛ "lxdhost" ͱ͍͏໊લͰొ) Certificate fingerprint: 8c ea 8b a3 a0 64 dd 9f 5e fb 28 dd f6 89 c6 58 7c 8b e0 ab 62 c1 14 f5 50 dc 44 16 ok (y/n)? y Admin password for lxdhost: ("lxdhost" Ͱઃఆͨ͠ύεϫʔυΛೖΕΔ) Client certificate stored at server: lxdhost ϦϞʔτͷίϯςφͷૢ࡞ $ lxc init ubuntu lxdhost:test01 ("test01" ίϯςφΛ "lxdhost" ʹ࡞) $ lxc list lxdhost: ("lxdhost" ͷίϯςφҰཡ) test01 $ lxc start lxdhost:test01 ("lxdhost"্ͷ"test01"ίϯςφͷىಈ) $ lxc exec lxdhost:test01 -- /bin/uname -a ("lxdhost"্ͷ"test01"ίϯςφͰ uname ίϚϯυ࣮ߦ) Linux test01 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 23 / 29
Slide 24
Slide 24 text
ࠓͷ༰ LXCFS LXC 1.1 LXD ͦͷଞ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 24 / 29
Slide 25
Slide 25 text
ͦͷଞ ެࣜϖʔδ https://linuxcontainers.org ϦχϡʔΞϧ ຊޠϖʔδશʹӳޠϖʔδʹਵ (ͯ͠ΔͭΓ w) ͷϩΰϚʔΫ (?) Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 25 / 29
Slide 26
Slide 26 text
·ͱΊ LXCFS LXC 1.1 LXD ͦͷଞ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 26 / 29
Slide 27
Slide 27 text
·ͱΊ LXC 1.0.0 ϦϦʔε͔Β 1 ɺࡉ͔͍ͱ͜ΖͰ͍উख͕ ྑ͘ͳͬͨΓɺ༷ʑͳڥͰ͖ͪ͘͠Μͱಈ͘Α͏ʹͳͬ ͨײ͡ LXD ָ͠Έ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 27 / 29
Slide 28
Slide 28 text
ڠྗऀืू ڠྗऀืूதɻಛʹϨϏϡʔ man pages ༁ linuxcontainers.org ༁ ͜ͷษڧձ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 28 / 29
Slide 29
Slide 29 text
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ Ճ౻ହจ ୈ 6 ճίϯςφܕԾԽͷใަձ 2015-02-18 29 / 29