โฮมเพจ » ทำอย่างไร » คำแนะนำเกี่ยวกับระบบไฟล์ Z (ZFS) สำหรับ Linux

    คำแนะนำเกี่ยวกับระบบไฟล์ Z (ZFS) สำหรับ Linux

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

    ภาพถ่ายโดย Kenny Louie.

    ZFS คืออะไรและทำไมฉันจึงควรใช้?

    ระบบไฟล์ Z เป็นตัวจัดการโลจิคัลวอลุ่มฟรีและโอเพนซอร์สที่สร้างโดย Sun Microsystems สำหรับใช้ในระบบปฏิบัติการ Solaris คุณสมบัติที่น่าดึงดูดที่สุดบางประการ ได้แก่ :

    ความยืดหยุ่นที่ไม่มีที่สิ้นสุด

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

    ความสมบูรณ์สูงสุด

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

    ขับรถรวมกำไร

    ผู้สร้าง ZFS ต้องการให้คุณคิดว่ามันคล้ายกับวิธีที่คอมพิวเตอร์ของคุณใช้ RAM เมื่อคุณต้องการหน่วยความจำเพิ่มเติมในคอมพิวเตอร์ของคุณคุณใส่ไม้เท้าอื่นและทำเสร็จแล้ว ในทำนองเดียวกันกับ ZFS เมื่อคุณต้องการพื้นที่ฮาร์ดไดรฟ์เพิ่มขึ้นคุณจะต้องใส่ฮาร์ดไดรฟ์ตัวอื่นลงไป ไม่จำเป็นต้องใช้เวลาในการแบ่งพาร์ติชันการจัดรูปแบบการเตรียมใช้งานหรือทำสิ่งอื่นใดกับดิสก์ของคุณ - เมื่อคุณต้องการ "พูล" หน่วยเก็บข้อมูลขนาดใหญ่ขึ้นเพียงเพิ่มดิสก์.

    RAID

    ZFS มีความสามารถในระดับ RAID ที่แตกต่างกันมากมายในขณะที่มอบประสิทธิภาพที่เทียบเท่ากับตัวควบคุม RAID ของฮาร์ดแวร์ ช่วยให้คุณประหยัดเงินทำให้การตั้งค่าง่ายขึ้นและเข้าถึงระดับ RAID ที่เหนือกว่าที่ ZFS ได้ปรับปรุง.

    การติดตั้ง ZFS

    เนื่องจากเราครอบคลุมเฉพาะพื้นฐานในคู่มือนี้เราจะไม่ติดตั้ง ZFS เป็นระบบไฟล์รูท ส่วนนี้อนุมานว่าคุณกำลังใช้ ext4 หรือระบบไฟล์อื่นและต้องการใช้ ZFS สำหรับฮาร์ดไดรฟ์รองบางตัว นี่คือคำสั่งสำหรับการติดตั้ง ZFS บนลีนุกซ์รุ่นยอดนิยมบางตัว.

    Solaris และ FreeBSD ควรมาพร้อมกับ ZFS ที่ติดตั้งและพร้อมใช้งานแล้ว.

    อูบุนตู:

    $ sudo add-apt-repository ppa: zfs-native / stable
    $ sudo apt-get update
    $ sudo apt-get install ubuntu-zfs

    Debian:

    $ su -
    # wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
    # dpkg -i zfsonlinux_2 ~ wheezy_all.deb
    # apt-get update
    # apt-get install debian-zfs

    RHEL / CentOS:

    $ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
    $ sudo yum ติดตั้ง zfs

    หากคุณมีการแจกจ่ายอื่น ๆ ให้ตรวจสอบ zfsonlinux.org และคลิกที่การกระจายของคุณภายใต้รายการ "แพคเกจ" สำหรับคำแนะนำเกี่ยวกับวิธีการติดตั้ง ZFS.

    ในขณะที่เราดำเนินการตามคู่มือนี้เราจะใช้ Ubuntu เพราะนั่นน่าจะเป็นตัวเลือกอันดับ 1 สำหรับ Linux geeks คุณควรจะยังคงติดตามได้ไม่ว่าอะไรจะเกิดขึ้นเนื่องจากคำสั่ง ZFS จะไม่เปลี่ยนไปตามการกระจายที่ต่างกัน.

    การติดตั้งใช้เวลาสักครู่ แต่เมื่อเสร็จแล้วให้เรียกใช้ $ sudo zfs รายการ เพื่อให้แน่ใจว่าติดตั้งอย่างถูกต้อง คุณควรได้ผลลัพธ์เช่นนี้

    เรากำลังใช้การติดตั้งเซิร์ฟเวอร์ Ubuntu ใหม่ตอนนี้ด้วยฮาร์ดไดรฟ์เดียวเท่านั้น.

    การกำหนดค่า ZFS

    สมมติว่าเราใส่ฮาร์ดไดรฟ์อีกหกตัวในคอมพิวเตอร์ของเรา.

    $ sudo fdisk -l | ข้อผิดพลาด grep จะแสดงฮาร์ดไดรฟ์ทั้งหกที่เราเพิ่งติดตั้งให้เรา ขณะนี้ไม่สามารถใช้งานได้เนื่องจากไม่มีตารางพาร์ทิชันใด ๆ.

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

    $ sudo zpool create -f geek1 / dev / sdb / dev / sdc / dev / sdd

    zpool สร้าง คือคำสั่งที่ใช้สร้างพูลหน่วยเก็บข้อมูลใหม่, -ฉ แทนที่ข้อผิดพลาดใด ๆ ที่เกิดขึ้น (เช่นถ้าดิสก์มีข้อมูลอยู่แล้ว), geek1 เป็นชื่อของพูลหน่วยเก็บข้อมูลและ / dev / sdb / dev / sdc / dev / sdd เป็นฮาร์ดไดรฟ์ที่เราใส่ในสระ.

    หลังจากที่คุณสร้างสระว่ายน้ำของคุณคุณควรจะเห็นมันด้วย DF คำสั่งหรือ รายการ sudo zfs:

    อย่างที่คุณเห็น / geek1 ถูกเมาท์แล้วและพร้อมใช้งาน.

    หากคุณต้องการดูดิสก์สามตัวที่คุณเลือกสำหรับกลุ่มของคุณคุณสามารถเรียกใช้ สถานะ sudo zpool:

    สิ่งที่เราทำมาจนถึงตอนนี้ก็คือสร้างพูลสไทรพ์แบบไดนามิกขนาด 9 TB (RAID 0 ที่มีประสิทธิภาพ) ในกรณีที่คุณไม่คุ้นเคยกับความหมายลองจินตนาการว่าเราสร้างไฟล์ 3 KB ใน / geek1 1 KB จะไปที่ sdb โดยอัตโนมัติ, 1 KB ถึง sdc และ 1 KB ถึง sdd จากนั้นเมื่อเราไปอ่านไฟล์ 3 KB ฮาร์ดไดรฟ์แต่ละตัวจะนำเสนอ 1 KB ให้กับเรารวมความเร็วของทั้งสามไดรฟ์ สิ่งนี้ทำให้การเขียนและการอ่านข้อมูลรวดเร็ว แต่ก็หมายความว่าเรามีจุดล้มเหลวเพียงจุดเดียว หากฮาร์ดไดรฟ์ตัวเดียวล้มเหลวเราจะสูญเสียไฟล์ 3 KB ของเรา.

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

    $ sudo zpool ทำลาย geek1

    แบมสวนสัตว์ของเราหายไปแล้ว คราวนี้เรามาใช้ดิสก์ทั้งสามของเราเพื่อสร้างพูล RAID-Z RAID-Z นั้นเป็นรุ่นปรับปรุงของ RAID 5 เพราะมันหลีกเลี่ยง“ ช่องโหว่การเขียน” โดยใช้การคัดลอกเมื่อเขียน RAID-Z ต้องการฮาร์ดไดรฟ์อย่างน้อยสามตัวและมีการประนีประนอมระหว่าง RAID 0 และ RAID 1 ในพูล RAID-Z คุณจะยังคงได้รับความเร็วของการสตริปบล็อกระดับ แต่จะมีการกระจายแบบเท่าเทียมกัน หากดิสก์หนึ่งแผ่นในพูลของคุณตายเพียงเปลี่ยนดิสก์นั้นแล้ว ZFS จะสร้างข้อมูลขึ้นใหม่โดยอัตโนมัติตามข้อมูลพาริตีจากดิสก์อื่น หากต้องการสูญเสียข้อมูลทั้งหมดในพูลหน่วยเก็บข้อมูลของคุณดิสก์สองตัวจะต้องตาย เพื่อให้สิ่งต่าง ๆ มีความซ้ำซ้อนมากขึ้นคุณสามารถใช้ RAID 6 (RAID-Z2 ในกรณีของ ZFS) และมีพาริตีคู่.

    เพื่อให้บรรลุสิ่งนี้เราสามารถใช้สิ่งเดียวกัน zpool สร้าง คำสั่งเหมือน แต่ก่อนระบุ RAIDZ หลังชื่อของพูล:

    $ sudo zpool สร้าง -f geek1 raidz / dev / sdb / dev / sdc / dev / sdd

    อย่างที่เห็น, df -h แสดงให้เห็นว่าพูล 9 TB ของเราลดลงเหลือ 6 TB เนื่องจาก 3 TB ถูกใช้เพื่อเก็บข้อมูลพาริตี กับ สถานะ zpool คำสั่งเราเห็นว่ากลุ่มของเราส่วนใหญ่เหมือนก่อน แต่ตอนนี้ใช้ RAID-Z.

    เพื่อแสดงให้เห็นว่าการเพิ่มดิสก์ลงในพูลหน่วยเก็บข้อมูลของเรานั้นง่ายเพียงใดเราเพิ่มดิสก์อีกสามดิสก์ (อีก 9 TB) ลงในพูลหน่วยเก็บข้อมูล geek1 ของเราเป็นการกำหนดค่า RAID-Z อื่น:

    $ sudo zpool เพิ่ม -f geek1 raidz / dev / sde / dev / sdf / dev / sdg

    เราจบลงด้วย:

    Saga ต่อ ...

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