CRIU ระบบบันทึกและกู้คืนสถานะของกระบวนการใน Linux

คริว (จุดตรวจและกู้คืนในพื้นที่ผู้ใช้) เป็นเครื่องมือที่ช่วยให้คุณบันทึกสถานะของกระบวนการหนึ่งหรือกลุ่มหนึ่ง จากนั้นเริ่มทำงานต่อจากตำแหน่งที่บันทึกไว้แม้ว่าจะรีสตาร์ทระบบหรือบนเซิร์ฟเวอร์อื่นโดยไม่ทำลายการเชื่อมต่อเครือข่ายที่สร้างไว้แล้ว

ด้วยเครื่องมือนี้ เป็นไปได้ที่จะหยุดแอปพลิเคชันที่กำลังทำงานอยู่ (หรือบางส่วน) และวางไว้ในที่จัดเก็บถาวรเป็นชุดไฟล์ จากนั้นไฟล์สามารถใช้เพื่อกู้คืนและเรียกใช้แอปพลิเคชันจากจุดที่ถูกตรึง

คุณลักษณะที่โดดเด่น ของโครงการ CRIU นั่นก็คือ มันถูกนำไปใช้ในพื้นที่ผู้ใช้เป็นหลักแทนที่จะอยู่ในเคอร์เนล

เกี่ยวกับ CRIU

เครื่องมือ CRIU กำลังได้รับการพัฒนาเป็นส่วนหนึ่งของโครงการ OpenVZ โดยมีเป้าหมายในการลบล้างจุดตรวจ / เรียกคืนในเคอร์เนล

แม้ว่า จุดสนใจหลักคือการสนับสนุนการย้ายคอนเทนเนอร์ช่วยให้ผู้ใช้สามารถตรวจสอบและกู้คืนสถานะปัจจุบันของกระบวนการที่กำลังรันและกลุ่มกระบวนการ

ปัจจุบัน เครื่องมือนี้สามารถใช้ได้กับระบบ x86-64 และ ARM y รองรับฟังก์ชั่นต่อไปนี้:

  • กระบวนการ: ลำดับชั้นของพวกเขา, PIDs, ตัวพิสูจน์ตัวตนผู้ใช้และกลุ่ม (UID, GID, SID ฯลฯ ) ความสามารถของระบบเธรดและสถานะที่ทำงานและหยุดทำงาน
  • หน่วยความจำแอปพลิเคชัน: ไฟล์ที่แมปหน่วยความจำและหน่วยความจำที่ใช้ร่วมกัน
  • เปิดไฟล์
  • ท่อและ FIFO
  • ซ็อกเก็ตโดเมน Unix
  • ซ็อกเก็ตเครือข่ายรวมถึงซ็อกเก็ต TCP ในสถานะ ESTABLISHED
  • ระบบ V IPC
  • ตัวจับเวลา
  • สัญญาณ
  • ขั้ว
  • เคอร์เนลเรียกไปยังระบบเฉพาะ: inotify, signalfd, eventfdyepoll

ระหว่างพื้นที่การใช้งาน ของเทคโนโลยี CRIU เป็นที่สังเกตว่า ระบบปฏิบัติการจะรีสตาร์ทโดยไม่ขัดจังหวะความต่อเนื่องของกระบวนการ การโอนย้ายคอนเทนเนอร์แบบสดที่ใช้งานเป็นเวลานานเร่งความเร็วในการเรียกใช้กระบวนการที่ช้า (สามารถเริ่มจากสถานะที่บันทึกไว้หลังจากการเริ่มต้น) ดำเนินการอัปเดตเคอร์เนลโดยไม่ต้องรีสตาร์ทเซอร์วิสเป็นระยะบันทึกสถานะของงานที่ทำงานเป็นเวลานานเพื่อกลับมาทำงานต่อในกรณีที่เกิดข้อขัดข้อง , โหลดบาลานซ์ข้ามโหนดคลัสเตอร์, กระบวนการที่ซ้ำกันบนเครื่องอื่น (แตกสาขาไปยังระบบระยะไกล), สร้างสแน็ปช็อตของแอพพลิเคชั่นผู้ใช้ระหว่างการดำเนินการสำหรับการวิเคราะห์บนระบบอื่นหรือในกรณีที่คุณต้องการยกเลิกการดำเนินการเพิ่มเติมในโปรแกรม CRIU ใช้ในระบบการจัดการคอนเทนเนอร์เช่น OpenVZ, LXC / LXD และ Docker

เกี่ยวกับ CRIU 3.15 เวอร์ชันใหม่

ขณะนี้เครื่องมืออยู่ในเวอร์ชัน 3.15ซึ่งเพิ่งเปิดตัวเมื่อเร็ว ๆ นี้และแนะนำบริการ criu-image-streamer ซึ่งช่วยให้สามารถส่งภาพกระบวนการโดยตรงจาก / ไปยัง CRIU ในระหว่างการดำเนินการหยุด / กู้คืน

  • สามารถถ่ายโอนรูปภาพจากที่จัดเก็บข้อมูลภายนอก (S3, GCS ฯลฯ ) โดยไม่ต้องบัฟเฟอร์ในระบบไฟล์ภายในเครื่อง
  • เพิ่มการรองรับสถาปัตยกรรม MIPS
  • อนุญาตให้หยุดกระบวนการที่ไม่ได้เป็นของเนมสเปซ PID ที่มีอยู่แล้วตามด้วยคืนค่าไปยังเนมสเปซ PID ที่มีอยู่
  • มีการเพิ่มกลไกเพิ่มเติมเพื่อตรวจสอบไฟล์
  • เพิ่มการรองรับสำหรับการแช่แข็งและการกู้คืนโครงสร้าง BPF BPF_HASH_OF_MAPS และ BPF_ARRAY_OF_MAPS
  • เพิ่มการสนับสนุนเบื้องต้นสำหรับ cgroup เวอร์ชันที่สอง

จะติดตั้ง CRIU บน Linux ได้อย่างไร?

สำหรับผู้ที่สนใจติดตั้งเครื่องมือนี้ควรทราบว่ามีอยู่ในช่องทางการของลีนุกซ์ส่วนใหญ่

ดังนั้นในการติดตั้งเครื่องมือ เพียงแค่เปิดเทอร์มินัลและด้วยความช่วยเหลือของผู้จัดการแพ็กเกจของคุณให้มองหาเครื่องมือหรือใช้คำสั่งต่อไปนี้ที่เราแชร์

สำหรับกรณีของผู้ที่เป็น Debian ผู้ใช้ Ubuntu และอนุพันธ์ของทั้งสองนี้:

sudo apt install criu

ในขณะที่สำหรับผู้ที่เป็นผู้ใช้ Arch Linux และอนุพันธ์ใด ๆ ของมัน:

sudo pacman -S criu

ในกรณีของผู้ที่เป็นผู้ใช้ openuse:

sudo zypper install criu

ในที่สุด สำหรับผู้ที่ต้องการรวบรวมเครื่องมือ พวกเขาสามารถทำได้โดยพิมพ์:

git clone https://github.com/checkpoint-restore/criu.git
cd criu
make clean
make
make install
sudo criu check
sudo criu check --all

หากคุณต้องการทราบข้อมูลเพิ่มเติม เกี่ยวกับเครื่องมือนี้คุณสามารถตรวจสอบรายละเอียดได้ ในลิงค์ต่อไปนี้.


เป็นคนแรกที่จะแสดงความคิดเห็น

แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา