พาร์ทิชันระบบไฟล์ UNIX ที่เหมาะสมที่สุดและกลยุทธ์การตั้งค่า


16

เมื่อแบ่งพาร์ติชันดิสก์ระบบใหม่สำหรับ UNIX กลยุทธ์ที่คุณต้องการสำหรับเดสก์ท็อปและ / หรือเซิร์ฟเวอร์คืออะไร

โปรดรวมเค้าโครงดิสก์พาร์ติชันรูปแบบระบบไฟล์และตัวเลือกจุดเมานท์ระดับ RAID กลุ่ม LVV และโวลุ่มการเข้ารหัสและการตั้งค่าอื่น ๆ ที่เกี่ยวข้อง


คำถามดูเหมือนจะซ้ำซ้อนกับเรื่องนี้ ( serverfault.com/questions/1145/… )
Zoredache

สำหรับเวิร์กสเตชันเซิร์ฟเวอร์ทดสอบหรือเซิร์ฟเวอร์ออนไลน์ที่สมบูรณ์แบบ
djangofan

คำตอบ:


9

ฉันเป็นแฟนตัวยงของ LVM สำหรับปัญหาแบบนี้ คุณต้องการพื้นที่สำหรับ / boot (ฉันใช้ประมาณ 100MB) เมื่อรวมกับระบบไฟล์ที่สามารถเติบโตและลดขนาดได้ (หรืออย่างน้อยก็เติบโต) คุณไม่ต้องคิดถึงพาร์ติชั่นขนาดเล็กอีกเลย

บนเดสก์ท็อปของฉันฉันใช้ LVM กับ XFS เป็นระบบไฟล์สำหรับพาร์ติชันทั้งหมด ฉันสร้างเล็กที่สุดเท่าที่จะเป็นไปได้และปล่อยให้พวกมันเติบโตตามที่ต้องการพื้นที่เพิ่ม


7

ถ้าเป็น Linux ให้แยก / boot

สำหรับรุ่น Unix อื่น ๆ โดยทั่วไปฉันได้แนะนำพาร์ติชั่นสำหรับ / และ / var โดยทั่วไปข้อมูลจะถูกเมานต์ที่ / u001, / u002 เป็นต้น

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

การสลับเป็น 2xRAM ไม่สมเหตุสมผลเมื่อคุณพูดถึงหน่วยความจำ 32GB ดังนั้นโปรดจำไว้ว่า "กฎ" เป็นแนวทางจริง ๆ และบางอันก็ไม่เข้าท่ากับฮาร์ดแวร์รุ่นใหม่ที่มีวางจำหน่ายในขณะนี้


2
+1 เมื่อพูดถึงความจำเป็นในการแบ่งพาร์ทิชันเมื่อเร็ว ๆ นี้นอกจากนี้หากคุณต้องการพื้นที่เพิ่มเติมใน / home คุณสามารถติดตั้งฮาร์ดไดรฟ์ใหม่ได้เสมอ
Spoike

1
+1 - ฉันเห็นด้วย w / downplaying ความต้องการเกมแบ่งพาร์ติชันบ้าในระบบส่วนใหญ่ หากคุณรู้ว่าคุณต้องการ / var ที่จะอยู่บนดิสก์ที่รวดเร็วเนื่องจากแอปพลิเคชั่นบางตัวลองใช้ดู บ่อยครั้งกว่าเมื่อฉันพบกับเกมแบ่งพาร์ติชั่นที่บ้าคลั่งในระบบการผลิตมันเป็นโวลุ่มของฮาร์ดแวร์ RAID-1 เดียวที่ถูกแกะสลักไว้ในพาร์ติชั่นเล็ก ๆ ทั้งหมดที่รอการเติมและจำเป็นต้องปรับขนาดใหม่ ผู้ดูแลระบบชัด) ถ้าคุณรู้ว่าคุณมีแอพพลิเคชั่นสำหรับรูปแบบพาร์ติชั่นที่ซับซ้อนให้ไปทำมัน ถ้าคุณทำไม่ได้คุณทำไม่ได้
Evan Anderson

5

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

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

RAID เป็นสิ่งที่ดีฉันมักจะเรียกใช้ RAID1 ในคอมพิวเตอร์ส่วนบุคคลของฉันทั้งหมดเพราะฉันมีฮาร์ดไดรฟ์ล้มเหลวมากเกินไป

การเข้ารหัสด้วยdm-cryptนั้นดีถ้าระบบของคุณเป็นอุปกรณ์พกพามีข้อมูลที่มีมูลค่าสูงหรือหวาดระแวงเพียงของคุณ

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

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


5

มีสองเหตุผลที่ดีมากในการแบ่งพาร์ติชันนอกเหนือจากประเภท FS:

  1. ป้องกัน overpill จากแอปพลิเคชันที่มีผลต่อการทำงานของระบบ หากแอปของคุณกรอกข้อมูล/usrจะมีประโยชน์ที่จะมีพื้นที่เหลือ/varเพื่อให้ระบบดำเนินการต่อและบันทึกการบันทึก

    Jauder กล่าวข้างต้นว่านี่เป็นเรื่องที่ไร้ผลกับขนาดของฮาร์ดดิสก์วันนี้ - ฉันไม่คิดว่านี่เป็นเรื่องจริงอย่างเด็ดขาด ไดรฟ์ของเราอาจใหญ่กว่า แต่ข้อมูลที่เรากำลังพลิกกลับเพิ่มขึ้นเรื่อย ๆ ไม่จำเป็นต้องได้รับความพึงพอใจ

  2. ตัวเลือกการเมานต์ คุณสามารถกำหนดอย่างรอบคอบมากขึ้นว่าสิทธิ์แต่ละพาร์ติชันควรนำมาใช้ ตัวอย่างเช่นเป็นแนวปฏิบัติที่ดีที่จะไม่อนุญาตให้เรียกใช้ไฟล์โดยเฉพาะ suid /tmpเนื่องจากเป็นเวคเตอร์การโจมตีทั่วไปสำหรับเครื่องที่ให้บริการเว็บแอปพลิเคชัน นอกจากคุณจะใช้คุกที่คุณไม่ควรคาดหวังที่จะเห็นโหนดอุปกรณ์ใดก็ได้ /devแต่ และอื่น ๆ

เช่น.

/ noatime  
/tmp noatime,nodev,nosuid,noexec  
/var noatime,nodev,nosuid  
/usr noatime,nodev  
/home noatime,nodev,nosuid  

4

ฟิสิคัลดิสก์การแบ่งพาร์ติชัน
เริ่มต้นด้วยขั้นต่ำ 2 ดิสก์:

# 1 100MB, ID = 83 (Linux), Boot Flag ON
# 2 เหลือ, ID = FD (Linux Raid Auto)

พาร์ติชั่น 100MB ใช้สำหรับ / boot volume ฉันปล่อยสิ่งนี้ไว้ในไดรฟ์ทั้งหมดของฉัน (แม้ไม่ใช่บูต) เพื่อให้มีความยืดหยุ่นเพื่อให้ไดรฟ์ใด ๆ สามารถเปิดใช้งานในภายหลังเพื่อบูต หากดิสก์ไม่ตรงกับขนาดหรือคุณมีเลขคี่ (500GB, 250GBx2) แล้วแบ่งพาร์ติชันของไดรฟ์ 500GB เพื่อให้ตรงกับดิสก์ที่มีขนาดเล็กลง

RAID
ใช้ 100MB พาร์ทิชันsdaและsdbสร้าง RAID1 (กระจก) /bootปริมาณสำหรับ md0นี้จะกลายเป็น

md0 / boot 100MB Ext2

ไม่ต้องกังวลกับการใช้ FS ที่แปลกใหม่เมื่อเปิด / บูตมันไม่คุ้มค่า

พื้นที่ที่เหลือสามารถตั้งค่าในวิธีการต่าง ๆ ฉันเลือกใช้ RAID10 (มิรเรอร์ / สตริป) โดยใช้ชิ้น 64K และ "2 ก๊อปปี้ไกล" เพื่อความเร็ว สิ่งนี้จะช่วยให้คุณมีความยืดหยุ่นในการอัพเกรดไดร์ฟแบบเพิ่มหน่วย ตัวเลือกอื่น ๆ คือการทำ RAID5 / 6 อย่างไรก็ตามพื้นที่ที่ใช้งานได้จะถูก จำกัด ไว้ที่พาร์ติชันที่เล็กที่สุดและอย่าใช้พาร์ติชันจากอุปกรณ์เดียวกัน ชื่ออาร์เรย์ RAID ใหม่md1, md2และอื่น ๆ

LVM
ใช้เวลาทั้งหมดของอาร์เรย์ RAID ยกเว้นmd0และทำให้พวกเขาเป็นกลุ่มปริมาณ LVM lvm_vg0เดียวชื่อ หากคุณมีโวลุ่ม RAID5 และ RAID10 เป็นไปได้มากที่สุดที่จะไม่รวมเข้าด้วยกัน แต่ฉันคิดว่ามันจะไม่เจ็บ

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

lvm_vg0-root / 8GB Ext3 / ReiserFS (ไฟล์ distro หลัก)
lvm_vg0-home / home 20 + GB Ext3 / ReiserFS (ข้อมูลผู้ใช้, เอกสาร)
lvm_vg0-data / data 60 + GB XFS (สื่อ, ไฟล์ขนาดใหญ่, vm's)

ระบบไฟล์ XFS ไม่สามารถหดได้ดังนั้นโปรดคำนึงไว้เสมอ นอกจากนี้อาจไม่รองรับการลดขนาดรูตออนไลน์

การอัพเกรด หากคุณต้องการเปลี่ยนดิสก์สำหรับขนาดที่ใหญ่ขึ้นคุณจะมีตัวเลือกไม่กี่ วิธีที่ง่ายที่สุดคือการเพิ่มไดรฟ์เป็นคู่หรือมากกว่าและเพิ่มอาร์เรย์ RAID ใหม่ลงใน LVM VG ปัจจุบัน

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

หากจำเป็นmd#สามารถถอดอุปกรณ์ออกจาก LVM VG ได้โดยไม่ทำให้ข้อมูลสูญหาย สิ่งนี้สามารถทำได้หากมีพื้นที่ LVM ว่างเพียงพอที่จะเลื่อนบล็อก LVM ที่ใช้ทั้งหมดจากmd#อุปกรณ์ไปยังผู้อื่น LVM สามารถใช้พื้นที่ที่ไม่ได้กำหนดให้กับ LV เท่านั้นระบบไฟล์เปล่าจึงไม่นับเป็นพื้นที่ "ว่าง"


1
ฉันไม่มั่นใจกับความกลัวของระบบไฟล์ที่แปลกใหม่เมื่อ / boot ext3 และ XFS นั้นไม่แปลกใหม่อีกต่อไปในปี 2009 มันเคยเป็นเรื่องที่น่ากังวลเมื่อไลฟ์ซีดีไม่ได้บรรจุไดรเวอร์สำหรับพวกเขา แต่เกือบทุกวันนี้
Dan Carley

@Casey คุณสามารถลดขนาด "สด" ของ Ext3 หากคุณมีพื้นที่ว่างเพียงพอสำหรับสิ่งที่จะย้ายเข้า ใช่นี่เป็นประสบการณ์ที่กัดเล็บ แต่ฉันทำไปแล้วและมันก็ใช้ได้ผลตามที่โฆษณาไว้ เพียงแค่ระมัดระวังให้มากกับพารามิเตอร์
Avery Payne

2

ฉันเพิ่งเรียกใช้ Linux Workstations ฉันใช้ระบบไฟล์ ext3 และขนาดค่อนข้างขึ้นอยู่กับขนาดของดิสก์เป็นคนใจกว้างมากขึ้นกับพาร์ทิชันบนดิสก์ขนาดใหญ่ สิ่งเหล่านี้อยู่ในลำดับที่ปรากฏในตารางพาร์ติชัน:

  • / boot - 100 MB
  • พื้นที่สว็อป - 2xRAM
  • / usr - 10-20 GB
  • / - 5-10 GB
  • / var - 1-2 GB
  • / tmp - 1-2 GB
  • / usr / local - 10-20 GB
  • / home - ทุกอย่างอื่น

ในเวิร์คสเตชั่นภรรยาของฉันที่มหาวิทยาลัยซึ่งมีไดรฟ์ 750 GB สองตัวเราได้สร้างขึ้นนอกเหนือจากข้างบนพาร์ติชั่นหลายสิบ ~ 100 GB ในไดรฟ์ต่าง ๆ ทั้งหมดที่ติดตั้งใน / data / N โดยที่ N เป็นตัวเลขตั้งแต่ 1 ถึง 12 เธอใช้สิ่งเหล่านี้เพื่อเก็บข้อมูลสำหรับโครงการวิจัยต่างๆของเธอ


โดยส่วนตัวฉันไม่เห็นประโยชน์ของการมี / var, / usr แยกออกเป็นพาร์ติชันอื่น ในขณะที่ / usr / local อาจเป็นความคิดที่ดีหากคุณมีซอฟต์แวร์ที่ติดตั้งเอง (= ไม่ได้ติดตั้งผ่านการจัดการแพ็คเก็ต) ทั้งสองที่กล่าวถึงนั้นค่อนข้างไร้ประโยชน์ นอกจากนี้ 2xRAM เนื่องจากการสลับไม่จำเป็น หากระบบของคุณเริ่มแลกเปลี่ยนทุกอย่างช้าลงดังนั้นคุณต้องการหลีกเลี่ยงปัญหานี้ในตอนแรก ฉันมีพาร์ทิชัน swap ด้วย Ramsize + X โดยส่วนตัวแล้วเพราะฉันใช้ suspend-to-disk บางครั้ง
Martin

2
@Martin ในกล่อง linux ที่ทำหน้าที่เป็นแคชปลาหมึกคุณต้องการสปูลของคุณและบันทึก dir ให้อยู่ในดิสก์ที่รวดเร็วและโดยปกติคุณไม่จำเป็นต้องใช้ดิสก์นั้นในการเชื่อถือได้ หนึ่งอาจใส่ (/ var) สปูลของคุณบน RAID0 (แถบ) และทิ้งทุกอย่างไว้ในไดรฟ์ที่ช้ากว่า
Zoredache

@ มาร์ติน - คุณพูดถูกการแยก / usr อาจไม่จำเป็นและฉันก็ไม่ได้ทำเช่นนั้นอีกต่อไป swap = 2xRAM เป็นนิสัยเก่าที่หลงเหลืออยู่จากวันที่ฉันตั้งค่าระบบด้วย RAM 256 MB หรือน้อยกว่า
dagorym

1
ที่จริงแล้วการแยก / usr และ / var ช่วยให้คุณสามารถเปิดใช้งานการบันทึกรายวันในที่หนึ่งและไม่อื่น ๆ
Scott

1
และการวาง / var บนพาร์ติชั่นแยกทำให้แน่ใจว่ามีเพียง / var เท่านั้นที่สามารถเติมไฟล์บันทึกได้ซึ่งอาจทำให้ระบบของคุณคุกเข่า
wzzrd

1

ใช้ noatime บนดิสก์ทั้งหมด (เว้นแต่คุณจะมีเหตุผลที่จะไม่) ฉันเมานต์ / tmp ใน tmpfs แม้ว่ามันอาจจะไม่ค่อยดีเท่าไหร่บนเซิร์ฟเวอร์ฉันก็ต้องแน่ใจว่ามันเป็นพาร์ติชั่นแยกต่างหากและติดตั้ง nodev, nosuid, noexec, noatime . ฉันมักจะใช้ ext2 สำหรับ / boot ดังนั้นฉันจึงไม่ต้องกังวลกับการเปลี่ยน fs สิ่งต่าง ๆ ที่ทำให้ความสามารถของฉันในการบูต w / grub ext4 ในทุกสิ่งทุกอย่างฉันใช้ journal = data on / home ซึ่งอาจทำให้ช้าลงเล็กน้อย (เนื่องจากไม่มี dealloc) แต่ฉันไม่เคยสูญเสียข้อมูลด้วย journal = data เช่นกันและเป็นบิตล่าสุด / ยิ่งใหญ่ที่สุด โสเภณีบางครั้งระบบของฉันล็อคและฉันต้องรีเซ็ตอย่างหนัก (เพราะฉันลองอะไรบางอย่างเช่น kms และพบข้อบกพร่อง)


1
อย่าลืมใช้ 'nodiratime' ด้วยมิฉะนั้นคุณจะกด vfs_cache_pressure ด้วย inodes มากมาย (รวมถึงการเขียนลงดิสก์จริง!)
Gazzonyx

0

ว้าวคำถามที่ดี รับการท่องเพื่อคำตอบที่สมบูรณ์แบบสำหรับ yonks

โดยส่วนตัวฉันมี 50Mb / boot ~ 8GB / และส่วนที่เหลือจะไป / home นั่นคือไกลจากที่สมบูรณ์แบบแม้ว่า ฉันต้องตรวจสอบระบบไฟล์ทางเลือกปัจจุบันฉันใช้ ext3 แต่ฉันเคยได้ยินสิ่งที่ยอดเยี่ยมของระบบไฟล์อื่นเช่น XFS

ฉันมักจะสร้างที่เก็บไฟล์สำหรับ / tmp ล้วนๆเพื่อที่ฉันจะได้มีความยืดหยุ่นกับมันในอนาคต

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