สภาพแวดล้อม Linux แบบแยกที่มีน้ำหนักเบา


15

ฉันต้องการสภาพแวดล้อม Linux (แบบผู้เยี่ยมชม) ที่แยกต่างหากบนคอมพิวเตอร์ของฉันซึ่งฉันสามารถทำสิ่งสกปรกโดยไม่ต้องกังวลเกี่ยวกับโฮสต์ เช่นติดตั้งสิ่งต่าง ๆ มากมายจากแหล่งที่ไม่มีการจัดการแพคเกจตัวแปรสภาพแวดล้อมของสภาพแวดล้อมที่มีมลพิษ ฯลฯ จากนั้นจะวางไข่สภาพแวดล้อมของแขกคนอื่นเมื่อแขกเก่า ๆ ได้รับความยุ่งเหยิงมากเกินไป

ฉันสนุกกับการใช้ Virtualbox กับ Tinycore linux แต่อย่างน้อยฉันก็ใช้มันฉันไม่คิดว่าค่าใช้จ่ายของ Virtualbox นั้นเป็นสิ่งที่จำเป็นทั้งหมด สำหรับสิ่งหนึ่งถ้าเป็นไปได้ฉันต้องการใช้เคอร์เนลเดียวกันกับโฮสต์ของฉัน

นอกจากนี้ในขณะที่ฉันทำงานผ่านการสอน Linux จาก Scratch ฉันได้เรียนรู้เล็กน้อยchrootซึ่งดูเหมือนว่าอาจเป็นสิ่งที่ฉันกำลังมองหา ความจริงแล้วมีหลายอย่างที่ฉันไม่เข้าใจใน LFS จริง ๆ เลยการเป็นหนึ่งในนั้น ฉันจะลองเล่นกับchrootถ้าฉันไม่กลัวมันอาจทำให้สภาพแวดล้อมในปัจจุบันของฉันยุ่ง

ดังนั้นฉันกำลังมองหาโปรแกรมจำลองเสมือนที่ใช้ความจริงที่ว่าฉันอยู่บน linuxbox (ฉันใช้ PinguyOS btw) เพื่อเพิ่มความเร็วในการจำลองเสมือนหรืออ้างอิงถึงวิธีใช้ chroot เป็นสนามเด็กเล่นแยก

คำตอบ:


16

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

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

เทคโนโลยีอื่น ๆ ที่มีค่อนข้างคล้ายกับ LXC มีVServerและOpenVZ คุณลักษณะที่สำคัญที่ OpenVZ จัดให้มี แต่ไม่ใช่ VServer หรือ LXC คือจุดตรวจสอบ : คุณสามารถถ่ายภาพสแนปชอตของเครื่องที่รันอยู่และกู้คืนได้ในภายหลัง ตัวเลือกอื่นคือโหมดผู้ใช้ Linuxซึ่งใช้ระบบ Linux ที่สมบูรณ์ภายในกระบวนการที่ทำงานในฐานะผู้ใช้ทั่วไปในโฮสต์

สำหรับวัตถุประสงค์ของการทดลองกับการติดตั้งระบบปฏิบัติการอื่น chroot ก็ใช้ได้ หากคุณต้องการเรียกใช้บริการในการติดตั้งทดลองหรือเล่นกับระบบเครือข่ายให้ไปที่ LXC ถ้าคุณต้องการสแน็ปช็อตใช้ OpenVZ หากคุณต้องการเคอร์เนลที่แยกจากกันโดยสิ้นเชิง แต่มีโอเวอร์เฮดหน่วยความจำเพียงเล็กน้อยผู้ใช้โหมดผู้ใช้ Linux หากคุณต้องการสแนปชอตและเคอร์เนลแยกต่างหากให้ใช้ VirtualBox


LXC สนับสนุนสแนปชอตทันที
baptx

5

นักเทียบท่าช่วยให้ LXC ใช้งานง่ายขึ้น:

คุณสมบัติเด่น

การแยกระบบไฟล์ : แต่ละคอนเทนเนอร์กระบวนการทำงานในระบบไฟล์รูทที่แยกจากกันอย่างสมบูรณ์

การแยกทรัพยากร : ทรัพยากรระบบเช่น cpu และหน่วยความจำสามารถจัดสรรให้แตกต่างกันไปในแต่ละกระบวนการของคอนเทนเนอร์โดยใช้กลุ่ม cg

การแยกเครือข่าย : แต่ละกระบวนการคอนเทนเนอร์จะทำงานในเนมสเปซเครือข่ายของตัวเองพร้อมด้วยอินเตอร์เฟสเสมือนและที่อยู่ IP ของตนเอง

Copy-on-write : ระบบไฟล์รูทสร้างขึ้นโดยใช้ copy-on-write ซึ่งทำให้การปรับใช้รวดเร็วมากหน่วยความจำราคาถูกและดิสก์ราคาถูก

การบันทึก : สตรีมมาตรฐาน (stdout / stderr / stdin) ของแต่ละคอนเทนเนอร์กระบวนการจะถูกรวบรวมและบันทึกสำหรับการดึงแบบเรียลไทม์หรือแบทช์

การจัดการการเปลี่ยนแปลง: การเปลี่ยนแปลงระบบไฟล์ของคอนเทนเนอร์สามารถส่งไปยังอิมเมจใหม่และนำมาใช้ใหม่เพื่อสร้างคอนเทนเนอร์เพิ่มเติม ไม่ต้องกำหนดค่า templating หรือกำหนดเอง

Interactive shell : นักเทียบท่าสามารถจัดสรร pseudo-tty และแนบกับอินพุตมาตรฐานของคอนเทนเนอร์ใด ๆ ตัวอย่างเช่นเพื่อรันเชลล์แบบโต้ตอบที่ถูกทิ้ง

ภายใต้ประทุน

ภายใต้ประทุนนั้นนักเทียบท่าสร้างขึ้นจากส่วนประกอบต่อไปนี้:

  • ความสามารถของ cgroup และ namespacing ของเคอร์เนล Linux

  • AUFS ระบบไฟล์รวมที่ทรงพลังพร้อมความสามารถในการคัดลอกเมื่อเขียน

  • ภาษาโปรแกรม Go

  • lxc ชุดของสคริปต์อำนวยความสะดวกเพื่อทำให้การสร้างคอนเทนเนอร์ linux ง่ายขึ้น


1
สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม หากต้องการวิจารณ์หรือขอคำชี้แจงจากผู้แต่งโปรดแสดงความคิดเห็นใต้โพสต์ของพวกเขา
Anthon

@ แอนตัน: ทำไมมันไม่ได้คำตอบ? ร้องขอคือสภาพแวดล้อม Linux แบบ "แยก (แขก)" ซึ่ง "เคอร์เนลเดียวกันกับโฮสต์ของฉัน"
Janus Troelsen

@JanusTroelsen“ คำตอบที่ไม่ตอบคำถามพื้นฐานอาจถูกลบออก ซึ่งรวมถึงคำตอบที่…แทบจะไม่มากกว่าลิงก์ไปยังไซต์ภายนอก” - คำถามที่พบบ่อยโปรดอธิบายสิ่งที่นักเทียบท่าทำและสิ่งที่แตกต่างจากซอฟต์แวร์อื่นที่คล้ายคลึงกัน
จัดการ

2

มองหา OpenVZ หรือ Linux Containers ซึ่งทั้งสองอย่างใช้สภาพแวดล้อมแบบเสมือนจริงแบบหลอกด้วยผู้ใช้ที่ไม่ซ้ำใครบนเคอร์เนลทั่วไป

OpenVZ เป็นผู้ใหญ่มากขึ้นในขั้นตอนนี้


ใช่แม้ใช้ในการผลิต ... ฉันแนะนำ Xen สำหรับการใช้งานที่จริงจังมากขึ้น
Aki

0

บางทีนี่อาจช่วยคุณได้: aufs : ระบบไฟล์การรวมหลายชั้นขั้นสูง

คุณมีระบบของคุณในระดับที่ต่ำกว่า ด้านบนของมันคุณสามารถติดตั้งระบบไฟล์ aufs การแก้ไข (เขียน) ทำในระบบไฟล์ aufs นี้เท่านั้นโดยไม่ต้องเปลี่ยนระบบไฟล์ 'ของจริง' ใต้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.