Giới thiệu về Hệ thống tệp Z (ZFS) cho Linux
ZFS thường được sử dụng bởi những người tích trữ dữ liệu, những người yêu thích NAS và các chuyên viên máy tính khác, những người thích đặt niềm tin vào một hệ thống lưu trữ dự phòng của riêng họ thay vì trên đám mây. Đây là một hệ thống tệp tuyệt vời để sử dụng để quản lý nhiều đĩa dữ liệu và là đối thủ của một số thiết lập RAID lớn nhất.
Ả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 Z là trình quản lý khối lượng logic miễn phí và nguồn mở đượ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
À, không phải về mặt kỹ thuật vô tận, nhưng đó là một hệ thống tệp 128 bit có khả năng quản lý dữ liệu zettabyte (một tỷ terabyte). Cho dù bạn có bao nhiêu dung lượng ổ cứng, 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 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 của bạn và các bản sao dự phòng của chúng sẽ không gặp phải tình trạng hỏng dữ liệu thầm lặng. Ngoài ra, trong khi ZFS đang bận kiểm tra tính toàn vẹn dữ liệu của bạn, nó sẽ tự động sửa chữa bất cứ lúc nào có thể.
Lái xe tổng hợp
Những người tạo ra 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 thêm bộ nhớ trong máy tính, bạn đặt một thanh khác và bạn đã hoàn thành. Tương tự với ZFS, khi bạn cần thêm dung lượng ổ cứng, bạn đặt vào một ổ cứng khác và bạn đã hoàn thành. 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 vào đĩa của bạn - khi bạn cần một kho lưu trữ lớn hơn, bể bơi, chỉ cần thêm đĩa.
RAID
ZFS có khả năng nhiều cấp độ RAID khác nhau, đồng thời mang lại hiệu năng tương đương 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 những điều cơ bản trong hướng dẫn này, 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 đã được cài đặt ZFS và sẵn sàng sử dụng.
Ubuntu:
$ sudo add-apt-repository ppa: zfs -igen / ổn định
$ sudo apt-get cập nhật
$ sudo apt-get cài đặt ubfox-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 cập nhật
# apt-get cài đặt debian-zfs
RHEL / CentOS:
$ sudo yum cài đặt cục bộ --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum cài đặt zfs
Nếu bạn có một số bản phân phối khác, hãy xem zfsonlinux.org và nhấp vào bản phân phối của bạn trong danh sách Gói 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ì các 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 mất khá nhiều thời gian, nhưng sau khi hoàn tất, hãy chạy danh sách $ sudo zfs
để đảm bảo nó được cài đặt chính xác. Bạn sẽ nhận được một đầu ra như thế này:
Chúng tôi đang sử dụng một cài đặt mới của máy chủ Ubuntu ngay bây giờ, chỉ với một ổ cứng.
Cấu hình ZFS
Bây giờ, giả sử chúng ta đặt thêm sáu ổ cứng vào máy tính của mình.
$ sudo fdisk -l | lỗi grep
sẽ cho chúng ta thấy sáu ổ cứng chúng ta vừa cài đặt. Hiện tại chúng không thể sử dụng được vì chúng không chứa bất kỳ loại bảng phân vùng nào.
Như chúng tôi đã đề cập trước đó, một trong những điều hay về ZFS là chúng tôi không cần bận tâm đến các phân vùng (mặc dù bạn có thể nếu bạn muốn). Hãy bắt đầu bằng cách lấy ba trong số các đĩa cứng của chúng tôi và đặt chúng vào nhóm lưu trữ bằng cách chạy lệnh sau:
$ sudo zpool tạo -f geek1 / dev / sdb / dev / sdc / dev / sdd
tạo zpool
là lệnh được sử dụng để tạo một kho lưu trữ mới, -f
ghi đè bất kỳ lỗi nào xảy ra (chẳng hạn như nếu đĩa đã có thông tin về chúng), đam mê1
là tên của kho lưu trữ và / dev / sdb / dev / sdc / dev / sdd
là những ổ cứng chúng ta đặt trong bể bơi.
Sau khi bạn đã tạo nhóm của mình, bạn sẽ có thể thấy nó với df
lệnh hoặc danh sách sudo zfs
:
Như bạn có thể thấy, / geek1 đã được gắn kết và sẵn sàng để sử dụng.
Nếu bạn muốn xem ba đĩa bạn đã chọn cho nhóm của mình, bạn có thể chạy tình trạng sudo zpool
:
Những gì chúng tôi đã làm cho đến nay là tạo ra một dải sọc động 9 TB (hiệu quả, RAID 0). Trong trường hợp bạn không quen với điều đó có nghĩa là gì, hãy tưởng tượng chúng tôi đã tạo tệp 3 KB trên / geek1. 1 KB sẽ tự động chuyển đến sdb, 1 KB sang sdc và 1 KB để sdd. Sau đó, khi chúng ta đọc tệp 3 KB, mỗi ổ cứng sẽ hiển thị 1 KB cho chúng ta, kết hợp tốc độ của ba ổ đĩa. Điều này làm cho việc viết và đọc dữ liệu nhanh chóng, nhưng cũng có nghĩa là chúng ta có một điểm thất bại duy nhất. Nếu chỉ một ổ cứng bị lỗi, chúng tôi sẽ mất tệp 3 KB.
Giả sử rằng 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 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ự phòng hơn:
$ sudo zpool phá hủy geek1
Bam, zpool của chúng tôi đã 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, vì nó tránh được lỗ ghi dữ liệu bằng cách sử dụng bản sao khi ghi. 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 nhóm RAID-Z, bạn vẫn sẽ có được tốc độ phân chia cấp độ khối nhưng cũng sẽ có tính chẵn lẻ phân tán. Nếu một đĩa đơn trong nhóm 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 nhóm lưu trữ của bạn, hai đĩa sẽ phải chết. Để khiến mọi thứ 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 tương tự tạo zpool
lệnh như trước nhưng chỉ định raidz
theo tên của hồ bơi:
$ sudo zpool tạo -f geek1 raidz / dev / sdb / dev / sdc / dev / sdd
Bạn có thể thấy, df -h
cho thấy nhóm 9 TB của chúng tôi hiện đã 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 tình trạng zpool
lệnh, chúng tôi thấy rằng nhóm của chúng tôi chủ yếu 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 nhóm 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 nhóm lưu trữ geek1 của chúng tôi dưới dạng 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 tìm hiểu về bề mặt của ZFS và các khả năng của nó, nhưng sử dụng những gì bạn đã học được trong bài viết này, giờ đây bạn có thể tạo các kho lưu trữ dữ liệu dự phòng. Kiểm tra lại với chúng tôi để biết các bài viết trong tương lai về ZFS, xem các trang hướng dẫn 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 ZFS.