Miehistö: A "recommended" stack to integrate CRIU into existing systems

2cf373725ded741824c50fd571eda6e1?s=47 KONDO Uchio
November 13, 2020

Miehistö: A "recommended" stack to integrate CRIU into existing systems

邦題 - Miehistö: CRIUによるチェックポイント・リストアの
導入と運用支援ツール

@WSA研究会 #7
https://wsa.connpass.com/event/187128/

2cf373725ded741824c50fd571eda6e1?s=128

KONDO Uchio

November 13, 2020
Tweet

Transcript

  1. ۙ౻Ӊஐ࿕(.01FQBCP *OD ୈճ84"ݚ .JFIJTUÖ $3*6ʹΑΔνΣοΫϙΠϯτɾϦετΞͷ ಋೖͱӡ༻ࢧԉπʔϧ

  2. ۙ౻Ӊஐ࿕6DIJP,POEP w(.0ϖύϘٕज़ج൫νʔϜ wؔ৺ൣғ3VCZݴޠɺ-JOVYɺ $POUBJOFSTɺγεςϜϓϩάϥϛϯά w84"ݚҎདྷͷൃදͰ͢

  3. 5P$ w͸͡ΊʹʢϦιʔεར༻ͷޮ཰Խͱ$3*6ʣ w$3*6ͷར༻ʹ͋ͨͬͯͷ໰୊఺ͷ੔ཧ wࠓճͷఏҊ w໰୊ʹର͢ΔΞϓϩʔν wఏҊʹؔ͢Δݱࡏͷ՝୊ɾ࿦఺ wؔ࿈ٕज़ɺઌߦݚڀɺ·ͱΊ

  4. Ϧιʔεͷޮ཰తͳ׆༻ wΦʔτεέʔϧʢ"84"VUP4DBMJOHɺ,VCFSOFUFTͷ"VUPTDBMFSʣ w'BB4ʢ"84-BNCEB $MPVE3VOʣ wϚΠάϨʔγϣϯʹΑΔ഑ஔϊʔυͷมߋ wىಈ͕࣌ؒϘτϧωοΫʹͳΔ w -BNCEBͱίʔϧυελʔτ w )FSPLVɺ$MPVE3VOͷॳճىಈ࣌ͷΦʔόϔου

    w 'BTU$POUBJOFSʢদຊɺۙ౻ʣ
  5. Ϋϥ΢υΠϯελϯεͱىಈ࣌ؒ w"84-BNCEB w ࣮ߦίϯςΩετͷઃఆʹ͸͕͔͔࣌ؒΓ·͢ɻ·ͨɺʮϒʔτετϥοϓʯ͕ඞཁͳͨ Ίɺ-BNCEBؔ਺Λݺͼग़ͨ͢ͼʹएׯͷϨΠςϯγʔ͕ൃੜ͠·͢ɻ w)FSPLV%ZOPTMFFQJOH w *GBTMFFQJOHXFCEZOPSFDFJWFTXFCUSB⒏D JUXJMMCFDPNFBDUJWFBHBJOBGUFSB TIPSUEFMBZ

    IUUQTEPDTBXTBNB[PODPNKB@KQMBNCEBMBUFTUEHSVOUJNFTDPOUFYUIUNMɹ IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTGSFFEZOPIPVSTEZOPTMFFQJOH
  6. DG'BTU$POUBJOFS wদຊɾۙ౻ΒͷϦΫΤετʹԠ͡ίϯςφΛ഑ஔɾϦιʔε੍ޚ͢Δ ΞʔΩςΫνϟʔͰ͸ɺίϯςφͷىಈ࣌ؒʹݴٴ w ࣍ʹɼίϯςφ͕ऩ༰͞Ε͍ͯΔ)PTU04͕ಥൃతͳো֐Ͱఀࢭͨ͠৔߹ͷϑϩʔʹ͍ͭͯड़΂Δ ͜ͷ৔߹ɼऩ༰αʔόʹ͸ίϯςφ͕ىಈ͍ͯ͠ͳ͍ͨΊɼ$POUBJOFS%JTQBUDIFSʹΑͬͯ֘౰ίϯς φΛىಈ͠ɼ)551ϦΫΤετΛసૹ͢Δɽ w$3*6ʹΑΔରԠྫʢদຊΒɺʣ

  7. DGϥΠϒϚΠάϨʔγϣϯ IUUQTMJCWJSUPSHNJHSBUJPOIUNM w৽͍͠ϗετͰ৽͘͠ىಈ͢ΔͷͰɺμ΢ϯλΠϜ͕͋Δ wطଘͷ7.ϕʔεͷ΋ͷͰ͸ແࢹͰ͖ͳ͍໰୊ wίϯςφɾϓϩηε͸૬ରతʹىಈ͕ૣ͍ͱ͸͍͑ɺͦΕͰ΋໰୊ʹ ͳΖ͏ͱࢥΘΕΔ

  8. ىಈ࣌ؒͷ௿ݮख๏ w$3*6ʢ$IFDLQPJOUBOE3FTUPSF*O6TFSTQBDFʣ w1*%ɺϨδελͷঢ়ଶɺϓϩηεଐੑʢVJE΄͔ʣΛอଘɺ࠶ੜ͢Δ wىಈ࣌ؒ୹ॖ΁ͷԠ༻ʢদຊΒʣ

  9. $3*6ͷ໰୊఺ͳͲ w ӡ༻ʹؔ͢Δϊ΢ϋ΢ɺن໿ͳͲͷ஝ੵ͕গͳ͍ w Πϝʔδ͸୯Ұͷϗετʹੜ੒͞ΕΔେྔͷϑΝΠϧ܈Ͱ͋ΓɺϚ ΠάϨʔγϣϯɾҠಈ͕೉͍͠ w αʔόΠϯελϯεͷੜ੒ϥϯλΠϜ͝ͱʹ$3*6ͷར༻ํ๏͕· ͪ·ͪͰɺֶशίετ΍Ҡߦίετ͕͋Δ

  10.  ӡ༻ͷࠔ೉͞ w$3*6ͷྺ࢙೥ʹ1P$ɺ೥ʹ w҆ఆੑࣗମ͸޲্ͨ͠ wҰํͰɺΧʔωϧͷ৽ػೳʢFH5JNF/BNFTQBDFʣʹԠͯ͡։ൃ ͕௥Ճ͞ΕΔͳͲɺࠓ΋ΞΫςΟϒʹมߋ͞Ε͍ͯΔ wݱ࣮ͷϓϩδΣΫτʹͲ͏ಋೖ͢Δ͔ɺఆ൪ͷߏ੒͕ͳ͍ wݹ͍৘ใ΋ଟ͍

  11.  ϚΠάϨʔγϣϯ΁ͷোน wΠϝʔδϑΝΠϧ͸਺͕ଟ͘ɺαΠζ͕େ͖͍͜ͱ΋͋Δɻ wϊʔυίϐʔͷίετ͸ແࢹͰ͖ͳ͍Ͱ͋Ζ͏ wܝࣔͨ͠ਤ͸୯७ͳ SVCZϓϩάϥϜͷ Πϝʔδྫ

  12.  ؀ڥʹΑΔ$3*6ӡ༻ͷҧ͍ w֓೦ͷҰ෦͸ڞ௨͢Δ͕ɺίϚϯυମܥ͕ҧ͏ w%PDLFSdocker checkpoint create / docker start --checkpoint

    w-9$lxc-checkpoint / lxc-checkpoint -r wH7JTPSrunsc checkpoint / runsc create && runsc restore
  13.  ؀ڥʹΑΔ$3*6ӡ༻ͷҧ͍ wඇίϯςφ7.ͷνΣοΫϙΠϯτϦετΞͷӡ༻ʹ͸੍ݶ͕ଟ͍ w ϗετͷ1*%OBNFTQBDFʹ͋ΔΑ͏ͳϓϩηεΛ$3͢Δʹ͋ͨͬͯ͸ɺ1*%ͷ৘ใ΋ؚΊ ͯͷϦετΞΛߦ͏ͨΊɺ΋͠νΣοΫϙΠϯτ࡞੒͔ΒϦετΞͷؒʹͦͷ1*%͕ར༻͞Ε ͯ͠·͏ͱϦετΞʹࣦഊͯ͠͠·͏ɻ w΄͔ඪ४ೖग़ྗͷ55:ͷѻ͍ɺCJOENPVOU࣌ͷύεࢦఆ໌ࣔͳͲ

  14. .JFIJTUÖͷ։ൃ •miehistod w αʔϏεͱΠϝʔδΛ࡞੒ɺ؅ཧ •runmh w ϗετͱಉ౳ͷ؀ڥΛ࡞੒͢Δ࠷ খͷίϯςφ •mhctl wଞcriuͳͲ

  15. .JFIJTUÖͷجຊػೳ wᶃαʔϏε࡞੒ wᶄαʔϏεͷΠϝʔ δ࡞੒ wᶅΠϝʔδ͔ΒͷϦ ετΞ wʢΠϝʔδͷϊʔυ ؒಉظʣ ᶃ ᶄ

  16. ऄ଍(SFOBEJOFˠ.JFIJTUÖ w3VCZ,BJHJͰൃදͨ͠(SFOBEJOFΛվ໊ɺվम͍ͯ͠Δɻ IUUQTTQFBLFSEFDLDPNVE[VSBUIFGBTUFTUXBZUPCPPUTUSBQSVCZPOSBJMT

  17. ऄ଍(SFOBEJOFˠ.JFIJTUÖ w(SFOBEJOF͸୯ҰόΠφϦͰ͋Γɺ·ͨɺෳ਺ͷαʔϏεΛ؅ཧͰ ͖ͳ͍ͳͲ࢖͍ͮΒ͍఺͕ଟ͔ͬͨɻ·ͨɺඇίϯςφ7.΁ͷରԠ Λओ࣠ʹஔ͍͍ͯͨɻ w.JFIJTUÖͱͯ͠αʔϏεͱΫϥΠΞϯτɺΠϯελϯεϥϯλΠϜΛ ෼཭͠ɺӡ༻ͷརศੑʢΫϥΠΞϯτ͕ผͷϊʔυʹ͍ͯ΋ྑ͍ͳ Ͳʣ΍ෳ਺ͷαʔϏεىಈʹରԠ͢ΔͳͲվળ͍ͯ͠Δ

  18. ऄ଍`)PXUPQSPOPVODF.JFIJTUÖ wl.JFIJTUÖzJTB'JOOJTIXPSENFBOJOHl$3&8z w㷦NJF 㷺IJTU”SFGIUUQTFOXJLUJPOBSZPSHXJLJNJFIJTU$# w” Ö ͸PͷޱΛͯ͠FΛൃԻ͍ͯͩ͘͠͞

  19. ໰୊΁ͷΞϓϩʔν 8*1 w ʹ͍ͭͯޙड़͢Δଞख๏ͱൺ΂ͯίϯϙωϯτ͕গͳ͘ɺ؀ڥ ͷ࡞੒΍ӡ༻͕༰қͰ͋Δͱߟ͑ΒΕΔɻ ·ͨɺίϯςφԽ͍ͯ͠ͳ͍Πϯελϯε্ͷαʔϏεʹ΋ରԠ͢Δ w ʹ͍ͭͯϊʔυؒͷΠϝʔδΛόοΫάϥ΢ϯυಉظ͢Δɻ ಉظͷઓུ͸બ୒ՄೳʹͳΔʢSTZODɺΦϒδΣΫτετϨʔδଞʣ w

    ʹ͍ͭͯNJFIJTUPEͱͦͷԼͷΠϯελϯεΛ෼཭͠ɺϓϥΨϒ ϧʹϥϯλΠϜؒͷҧ͍ΛٵऩՄೳʹ͍ͯ͠Δɻ DG0$*3VOUJNFTQFDεϖοΫΛຬͨͨ͠ϥϯλΠϜ͸Մ׵
  20. ՝୊ʹ͍ͭͯ w ݱ࣮తͳߏ੒ͱຊ౰ʹ౷߹Ͱ͖Δ͔ʁ w ಉظઓུʹ͍ͭͯɺΑΓߴ଎ͳख๏͕ͳ͍͔ʁ

  21. Ҋ,VCFSOFUFTͳͲͱ࿈ܞͰ͖ͳ͍͔ w.JFIJTUÖͷελοΫશମΛɺ7JSUVBM,VCFMFUͳͲͷٕज़Λհͯ͠؅ ཧͰ͖ͳ͍͔ʁ wͦ͏͢Δͱɺϊʔυͷ؅ཧɺ Πϯελϯεͷ؅ཧΛ,VCFSOFUFTͷ ӡ༻ʹࡌͤΔ͜ͱ͕Ͱ͖ΔͷͰɺ ӡ༻ͷ༰қੑ͕֨ஈʹ্͕Δͱ ࢥΘΕΔɻ

  22. Πϝʔδͷಉظॲཧ wಉظΛόοΫΤϯυͰߦ͏༧ఆ͕ͩɺଈ࣌ʹΠϝʔδΛ࡞ͬͯϚΠά Ϩʔγϣϯ͢Δ৔߹͸஗͍ͱߟ͑ΒΕΔɻ w*ODSFNFOUBMEVNQTͳͲΛར༻Ͱ͖ͳ͍͔ʁ w9VΒͷݚڀʢ4MFEHFʣʹΑΔͱɺ ਵ࣌ϝϞϦμϯϓΛଞϊʔυʹసૹ ͢Δ͜ͱͰϚΠάϨʔγϣϯͷ ߴ଎Խ͕Ͱ͖Δͱ͍ͯ͠Δɻ 9VΒͷ࿦จΑΓ *&&&$-06%

    IUUQTDSJVPSH*ODSFNFOUBM@EVNQT
  23. ؔ࿈ٕज़ɺઌߦݚڀ w1)BVMʢ3#PVDIFS dʣ w7PZBHFSʢ4/BEHPXEB ʣ w.BΒͷ࣮૷ʢ-.B ʣ w4MFEHFʢ#9V ʣ wʮίϯϙωϯτͷ౷߹ӡ༻ੑɺεέʔϥϏϦςΟɺແࢹͰ͖Δఔ౓ͷ

    μ΢ϯλΠϜΛߟྀͨ͠ʯ΋ͷ͸4MFEHFͷΈ
  24. ·ͱΊ wαʔόϦιʔεͷ༗ޮ׆༻ͷधཁͱɺͦΕʹ൐͏Πϯελϯεͷىಈ ͷߴ଎Խ΍ϚΠάϨʔγϣϯͷधཁ͕͋ΔɻͦͷͨΊͷπʔϧͱͯ͠ ͷ$3*6͕༗ྗͰ͋ΔɻҰํͰɺ$3*6ͷಋೖʹ͸ະͩӡ༻্ͷোน͕ ଟ͘ɺͦͷোนΛ௿ݮ͢΂͘.JFIJTUÖͱ͍͏໊ͷϛυϧ΢ΣΞ܈Λ ։ൃ͍ͯ͠Δɻ w.JFIJTUÖ͸ઌߦ͢Δ4MFEHFͳͲͱൺ΂Ε͹ૈ࡟Γͱ͍͏ଞͳ͍͕ɺ %PDLFSҎ֎ͷίϯςφ΍7.ߏ੒ͳͲ΁ͷରԠ΍ɺ,VCFSOFUFTͱͷ ౷߹Λݟਾ͑ͯ։ൃΛਐΊ͍ͯΔɻ