ฉันกำลังใช้ OpenZFS ที่ให้มาด้วยบน Ubuntu 16.04 Xenial ลอง
เมื่อสร้างพูลฉันมักจะอ้างอิงไดรฟ์โดย serials ของพวกเขาใน/dev/disk/by-id/
(หรือ/dev/disk/gpt
บน FreeBSD) เพื่อความยืดหยุ่น ไดรฟ์ไม่ได้อยู่ในลำดับเดียวกันเสมอ/dev
เมื่อรีบูทเครื่องและหากคุณมีไดรฟ์อื่นในเครื่องพูอาจล้มเหลวในการติดตั้งอย่างถูกต้อง
ตัวอย่างเช่นทำงานzpool status
ในกล่อง 14.04 ฉันได้รับนี้
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HDS722020ALA330_[..] ONLINE 0 0 0
ata-Hitachi_HUA722020ALA330_[..] ONLINE 0 0 0
แต่เมื่อฉันสร้างกลุ่มใหม่ใน 16.04 ด้วยสิ่งนี้ (ตัวย่อ):
zpool create pool raidz \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..] \
/dev/disk/by-id/ata-Hitachi_HDS723030ALA640_[..]
ฉันได้รับสิ่งนี้ด้วยzpool status
:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
sdf ONLINE 0 0 0
sde ONLINE 0 0 0
sdd ONLINE 0 0 0
sda ONLINE 0 0 0
ดูเหมือนว่า zpool จะติดตาม symlink มากกว่าที่จะอ้างอิงมัน
มีวิธีบังคับให้ zpool ที่ 16.04 เคารพการอ้างอิงไดรฟ์ของฉันเมื่อสร้างพูลหรือไม่? หรือมิฉะนั้นความกังวลของฉันเกี่ยวกับสิ่งที่มันทำที่นี่ถูกใส่ผิดที่?
อัปเดต: วิธีแก้ปัญหา
ฉันพบกระทู้สำหรับ zfsonlinux บน Github ที่แนะนำวิธีแก้ปัญหา สร้าง zpool ของคุณด้วย/dev/sdX
อุปกรณ์ก่อนจากนั้นทำสิ่งนี้:
$ sudo zpool export tank
$ sudo zpool import -d /dev/disk/by-id -aN
ฉันยังคงต้องการที่จะสามารถทำสิ่งนี้กับเริ่มต้นzpool create
แม้ว่าถ้าเป็นไปได้
zfs send
เพื่อคัดลอกข้อมูลของฉันไปยังกลุ่มใหม่ ที่จริงแล้ว raid-z ก็โอเคสำหรับกล่อง mythtv ของฉันที่ประสิทธิภาพไม่สำคัญเว้นแต่ว่าฉันกำลังใช้งาน transcode 6 หรือ 8 ครั้งในคราวเดียว การเปลี่ยนเป็นคู่ที่ทำมิเรอร์จะเห็นได้ชัดเจนมากในกลุ่มที่/home
ไดเรกทอรีของฉันอาศัยอยู่
zfs export
และzfs import -d
จะทำงานอยู่ดี BTW ยกเว้นว่าคุณต้องการพื้นที่ทุกไบต์จริงๆให้ใช้คู่มิเรอร์สองคู่แทนการโจมตี ประสิทธิภาพของ Raidz นั้นดีกว่า raid-5 แต่ก็ยังแย่กว่า Raid-10 หรือ zfs mirrored นอกจากนี้ยังง่ายต่อการขยายกลุ่มที่ประกอบด้วยคู่ที่มิเรอร์เพิ่มดิสก์สองครั้งต่อครั้ง ... ด้วย raidz คุณต้องแทนที่ไดรฟ์แต่ละตัวด้วยไดรฟ์ที่มีขนาดใหญ่กว่าและเมื่อคุณเปลี่ยนดิสก์ทั้งหมดจะเป็นของคุณ สระว่ายน้ำมีพื้นที่ว่างมากขึ้น