Ảnh của Kenny Louie.
ZFS là gì và tại sao tôi nên sử dụng nó?
Hệ thống tập tin Z là một trình quản lý khối tin hợp lý nguồn mở và miễn phí được xây dựng bởi Sun Microsystems để sử dụng trong hệ điều hành Solaris của họ. Một số tính năng hấp dẫn nhất của nó bao gồm:
Khả năng mở rộng vô tận
Vâng, không phải kỹ thuật vô tận, nhưng đó là hệ thống tệp 128 bit có khả năng quản lý dữ liệu zettabyte (một tỷ terabyte). Không có vấn đề bao nhiêu không gian ổ đĩa cứng bạn có, ZFS sẽ phù hợp để quản lý nó.
Tính toàn vẹn tối đa
Mọi thứ bạn làm bên trong ZFS đều sử dụng tổng kiểm tra để đảm bảo tính toàn vẹn của tệp. Bạn có thể yên tâm rằng các tập tin của bạn và các bản sao dự phòng của họ sẽ không gặp phải tham nhũng dữ liệu im lặng. Ngoài ra, trong khi ZFS đang bận lặng kiểm tra dữ liệu của bạn cho tính toàn vẹn, nó sẽ làm sửa chữa tự động bất cứ lúc nào nó có thể.
Drive nhóm
Những người sáng tạo của ZFS muốn bạn nghĩ về nó giống như cách máy tính của bạn sử dụng RAM. Khi bạn cần nhiều bộ nhớ hơn trong máy tính của mình, bạn đặt trong một thanh khác và bạn đã hoàn tất. Tương tự như vậy với ZFS, khi bạn cần thêm dung lượng ổ đĩa cứng, bạn đặt trong một ổ cứng khác và bạn đã hoàn tất. Không cần phải dành thời gian phân vùng, định dạng, khởi tạo, hoặc làm bất cứ điều gì khác để đĩa của bạn - khi bạn cần một lưu trữ lớn hơn "hồ bơi", chỉ cần thêm đĩa.
RAID
ZFS có khả năng nhiều cấp độ RAID khác nhau, tất cả đều mang lại hiệu suất có thể so sánh với các bộ điều khiển RAID phần cứng. Điều này cho phép bạn tiết kiệm tiền, giúp thiết lập dễ dàng hơn và có quyền truy cập vào các cấp độ RAID vượt trội mà ZFS đã cải thiện.
Cài đặt ZFS
Vì chúng tôi chỉ trình bày các kiến thức cơ bản trong hướng dẫn này nên chúng tôi sẽ không cài đặt ZFS làm hệ thống tệp gốc. Phần này giả định rằng bạn đang sử dụng ext4 hoặc một số hệ thống tệp khác và muốn sử dụng ZFS cho một số ổ đĩa cứng thứ cấp. Dưới đây là các lệnh để cài đặt ZFS trên một số bản phân phối Linux phổ biến nhất.
Solaris và FreeBSD nên đã đi kèm với ZFS cài đặt và sẵn sàng để sử dụng.
Ubuntu:
$ sudo add-apt-repository ppa:zfs-native/stable $ sudo apt-get update $ sudo apt-get install ubuntu-zfs
Debian:
$ su - # wget https://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 https://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm $ sudo yum install zfs
Nếu bạn có một số phân phối khác, hãy kiểm tra zfsonlinux.org và nhấp vào phân phối của bạn trong danh sách "Gói" để biết hướng dẫn về cách cài đặt ZFS.
Khi chúng tôi tiếp tục với hướng dẫn này, chúng tôi sẽ sử dụng Ubuntu vì đó dường như là lựa chọn số 1 cho các chuyên viên máy tính Linux. Bạn vẫn có thể theo dõi bất kể điều gì, vì lệnh ZFS sẽ không thay đổi trên các bản phân phối khác nhau.
Quá trình cài đặt diễn ra khá lâu, nhưng sau khi hoàn tất, hãy chạy
$ sudo zfs list
để đảm bảo cài đặt chính xác. Bạn sẽ nhận được một đầu ra như thế này:
Định cấu hình ZFS
Bây giờ, giả sử chúng tôi đặt thêm sáu ổ cứng vào máy tính của mình.
$ sudo fdisk -l | grep Error
sẽ cho chúng ta thấy sáu ổ đĩa cứng mà chúng ta vừa cài đặt. Chúng hiện không sử dụng được vì chúng không chứa bất kỳ loại bảng phân vùng nào.
$ sudo zpool create -f geek1 /dev/sdb /dev/sdc /dev/sdd
zpool create
là lệnh được sử dụng để tạo một nhóm lưu trữ mới,
-f
ghi đè bất kỳ lỗi nào xảy ra (chẳng hạn như nếu (các) đĩa đã có thông tin về chúng),
geek1
là tên của nhóm lưu trữ và
/dev/sdb /dev/sdc /dev/sdd
là những ổ đĩa cứng mà chúng tôi đặt trong hồ bơi.
Sau khi bạn đã tạo hồ bơi, bạn sẽ có thể thấy nó bằng
df
lệnh hoặc
sudo zfs list
:
Nếu bạn muốn xem ba đĩa nào bạn đã chọn cho nhóm của mình, bạn có thể chạy
sudo zpool status
:
Giả sử việc bảo vệ dữ liệu của bạn quan trọng hơn việc truy cập dữ liệu nhanh chóng, hãy xem các thiết lập phổ biến khác. Trước tiên, chúng tôi sẽ xóa zpool mà chúng tôi đã tạo để chúng tôi có thể sử dụng các đĩa này trong một thiết lập dư thừa hơn:
$ sudo zpool destroy geek1
Bam, zpool của chúng ta đã biến mất. Lần này, hãy sử dụng ba đĩa của chúng tôi để tạo một nhóm RAID-Z. RAID-Z về cơ bản là một phiên bản cải tiến của RAID 5, bởi vì nó tránh được "lỗ ghi" bằng cách sử dụng copy-on-write. RAID-Z yêu cầu tối thiểu ba ổ đĩa cứng, và là một sự thỏa hiệp giữa RAID 0 và RAID 1. Trong một nhóm RAID-Z, bạn sẽ vẫn nhận được tốc độ phân chia dải khối nhưng cũng sẽ phân phối chẵn lẻ. Nếu một đĩa đơn trong hồ bơi của bạn chết, chỉ cần thay thế đĩa đó và ZFS sẽ tự động xây dựng lại dữ liệu dựa trên thông tin chẵn lẻ từ các đĩa khác. Để mất tất cả thông tin trong kho lưu trữ của bạn, hai đĩa sẽ phải chết. Để làm cho mọi việc trở nên dư thừa hơn, bạn có thể sử dụng RAID 6 (RAID-Z2 trong trường hợp ZFS) và có tính chẵn lẻ gấp đôi.
Để thực hiện điều này, chúng ta có thể sử dụng
zpool create
lệnh như trước nhưng chỉ định
raidz
sau tên của hồ bơi:
$ sudo zpool create -f geek1 raidz /dev/sdb /dev/sdc /dev/sdd
df -h
cho thấy rằng hồ bơi 9 TB của chúng tôi hiện đã được giảm xuống còn 6 TB, vì 3 TB đang được sử dụng để giữ thông tin chẵn lẻ. Với
zpool status
lệnh, chúng tôi thấy rằng hồ bơi của chúng tôi hầu như giống như trước đây, nhưng hiện đang sử dụng RAID-Z.
Để cho thấy việc thêm nhiều đĩa vào kho lưu trữ của chúng tôi dễ dàng như thế nào, hãy thêm ba đĩa khác (9 TB khác) vào bể lưu trữ geek1 của chúng tôi làm cấu hình RAID-Z khác:
$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg
Chúng tôi kết thúc với:
Saga tiếp tục…
Chúng tôi hầu như không cạo bề mặt của ZFS và khả năng của nó, nhưng sử dụng những gì bạn đã học trong bài viết này, bây giờ bạn có thể tạo các kho lưu trữ dư thừa dữ liệu của bạn. Hãy liên hệ lại với chúng tôi để biết các bài viết về ZFS trong tương lai, xem các trang hướng dẫn sử dụng và tìm kiếm các hướng dẫn thích hợp vô tận và các video Youtube bao gồm các chức năng của ZFS.