ฉันควรสร้าง ZFS zpool ด้วยดิสก์หรือพาร์ติชันทั้งหมด


14

ฉันกำลังทำ zpools บนเครื่อง FreeBSD ขณะที่สร้าง zpool ฉันสังเกตสองกรณีนี้:

  1. ถ้าฉันใช้เวลาraw disksและสร้างzpoolฉันสามารถสร้าง zpools และทำงานได้อย่างสมบูรณ์

  2. ถ้าฉันฟอร์แมตดิสก์ที่ใช้gpartในfreebsd-zfsรูปแบบแล้วทำให้ zpool แล้วพวกเขาก็ทำงานได้อย่างสมบูรณ์

สิ่งที่ฉันสับสนคือวิธีไหนดีกว่าสำหรับการสร้างสวนสัตว์?

คำตอบ:


8

ควรใช้ทั้งดิสก์กับ ZFS เมื่อเป็นไปได้
ไม่จำเป็นต้องแบ่งพาร์ติชันในกรณีที่คุณใช้งาน


your use caseคุณหมายถึงอะไรโดย คุณสามารถให้บางกรณีที่การแบ่งพาร์ติชันอาจมีประโยชน์หรือไม่
shivams

พาร์ทิชันไม่เป็นประโยชน์ใน ZFS จนกว่าคุณจะมีการกำหนดค่าที่ลึกลับหรือกำลังใช้โซลูชั่น SSD บางอย่างหรือทำอะไรแปลก ๆ กับอุปกรณ์ ZIL และ L2ARC และถึงอย่างนั้นมันก็เป็นการดีที่สุดที่จะใช้ทั้งอุปกรณ์ / ดิสก์
ewwhite

แต่ทำไมจะดีกว่าถ้าใช้ทั้งดิสก์
leetNightshade

1
@leetNightshade เนื่องจากไม่มีดิสก์การแบ่งพาร์ติชันจุดมากเมื่อคุณใช้ ZFS ซึ่งระบบไฟล์ไม่ต้องการพาร์ติชันของตนเอง ยิ่งไปกว่านั้นเมื่อ ZFS "เป็นเจ้าของ" ดิสก์มันสามารถเปิดใช้งานแคชเขียนดิสก์เพื่อประสิทธิภาพที่ดีขึ้น ดูsolarisinternals.com/wiki/index.php/…
jlliagre

1
@Grogi มีหลักฐานอะไรที่ดีในการสำรองข้อมูลหรือไม่
leetNightshade

5

ใช้หนึ่งชิ้น / พาร์ติชันเฉพาะสำหรับ ZFS ต่อแผ่นดิสก์จริงและเว้นที่ว่างเหลือไว้โดยไม่แบ่งพาร์ติชัน ด้วยวิธีนี้หากคุณจำเป็นต้องเปลี่ยนไดรฟ์และการเปลี่ยนมีขนาดเล็กลง 10 ส่วนคุณจะยังสามารถทำได้ ( http://www.freebsddiary.org/zfs-with-gpart.php )

นั่นคือสิ่งที่ Solaris ทำโดยอัตโนมัตินั่นคือสิ่งที่ FreeNAS ทำ ( https://forums.freenas.org/index.php?threads/zfs-on-partitioned-disks.37079/ ) และนั่นคือ ZoL ทำเมื่อคุณให้ดิสก์ทั้งหมด - มันจะแบ่งมัน ...

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

ด้วย ZoL ความแตกต่างเดียวที่ฉันรู้คือ ZoL จะเปลี่ยนตัวกำหนดตารางเวลาดิสก์เป็นnoopเมื่อดิสก์ทั้งหมดมอบให้กับ vdev ไม่มีอะไรหยุดคุณจากการตั้งค่าด้วยตนเอง

มีบางอย่างที่ทำไม่ได้ ... อย่าสร้างพาร์ติชันเพิ่มเติมสำหรับ ZFS ต่อดิสก์และหากคุณตัดสินใจที่จะเพิกเฉยต่อคำแนะนำข้างต้นอย่าสร้าง vdevs จากพวกเขาใน zpool เดียวกัน สิ่งนี้จะทำให้ประสิทธิภาพการทำงานลดลงเนื่องจาก ZFS จะเชือดข้อมูลระหว่าง vdevs และ iops ตามลำดับจะกลายเป็นการค้นหาฝันร้าย ...


คุณช่วยเพิ่มความเข้าใจเกี่ยวกับการค้นหาฝันร้ายด้วยการแบ่งส่วนดิสก์ที่ใช้ / ใช้ร่วมกันได้ไหม?
satch_boogie

สถานการณ์ที่ง่ายที่สุด - คุณสร้างพูลจากสอง vdevs แต่ละพาร์ติชันบนฮาร์ดดิสก์เดียวกัน ตอนนี้คุณต้องการเขียนกลุ่มข้อมูลที่ใหญ่พอที่จะครอบคลุมทั้ง vdevs แม้จะมีการเขียนข้อมูลตามลำดับไดรฟ์ต้องค้นหาระหว่างสองตำแหน่งที่แยกจากกันเพื่อบันทึก
Grogi

พฤติกรรมนี้เหมือนกันหรือไม่หาก Pool_A ใช้ (sda1, sdb1, sdc3) และ Pool_B ใช้ (sda2, sdb2, sdc3)
satch_boogie

คุณไม่ต้องเขียนถึงพวกเขาพร้อมกัน ... หากคุณมี vdevs ในสระเดียวไม่มีอะไรที่คุณสามารถทำได้ ...
Grogi

0

ในหัวของฉันคำถามนี้เกิดขึ้นเนื่องจากมีข้อสงสัยหากฉันมาสายสามารถกำหนดสิ่งที่อยู่ในดิสก์นั้น ... ดังนั้นเมื่อคุณสร้างสระว่ายน้ำในไดรฟ์ทั้งหมด (ใช่ด้วยตัวเลือก -f ถ้าจำเป็น), zpool สร้างตารางพาร์ทิชัน gpt และ พาร์ติชันของ Solaris เช่นนี้

(fdisk -l ...)
...
Disklabel type: gpt
Disk identifier: 4CBE587E-23AF-8E4B-A7F0-B44AD6083171

Device          Start        End    Sectors  Size Type
/dev/sdd1        2048 3907010559 3907008512  1,8T Solaris /usr & Apple ZFS
/dev/sdd9  3907010560 3907026943      16384    8M Solaris reserved 1

ดังนั้นจึงไม่จำเป็นต้องสร้างพาร์ติชันด้วยตนเอง ...


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