Zfs là gì

Bài viết này Kỹ Thuật vẫn giới thiệu mang lại hầu như fan ZFS là gì với khuyên bảo thiết đặt tương tự như một trong những cấu hình ZFS bên trên CentOS 7.

Bạn đang xem: Zfs là gì


Contents

1 Giới thiệu1.2 Tìm phát âm một số có mang cùng khả năng của ZFS2 Hướng dẫn thiết lập đặt2.1 Một số thao tác cơ bản2.1.5 Tiện ích ZFS3 Tsay đắm khảo
Giới thiệu

ZFS là gì?

ZFS (Zettabyte File System) là 1 trong những tệp tin system nâng cao. Được thi công nhằm trở nên file system mới đến hệ điều hành và quản lý OpenSolaris. Sau được chuyển qua FreeBSD. Và tiếp là chuyển hẳn qua Linux.

Thế mà lại ban sơ ZFS được ban hành dưới giấy phép “Comtháng Development and Distribution License“, không tương thích với bản thảo GPL, yêu cầu quan yếu phân phối Linux Kernel được. Để xử lý vấn đề này thì những Linux distro cung ứng cách thức mua ZFS lên Linux.

Khi OpenSolaris chuyển thanh lịch close-source thì ZFS cũng giống như. Các lập trình sẵn viên ZFS ko say mê sự khiếu nại này đề xuất quyết định bóc tách ra làm dự án OpenZFS opensource cho xã hội. Thế nhưng mà bởi một số trắc trở bao phủ cthị trấn giấy phép cấp phép đề xuất OpenZFS vẫn quan trọng cấp dưỡng Linux Kernel được cơ mà vẫn đề xuất cần sử dụng phương pháp nhằm thiết lập tiếp tế Linux. Vậy phải ngơi nghỉ bài xích này Khi nói cài ZFS trên CentOS 7, có nghĩa là thiết lập OpenZFS trên CentOS 7.

ZFS tất cả một số trong những tuấn kiệt như:

Khả năng mở rộng dễ dãi với dung tích lưu trữ rất là to.Toàn vẹn tài liệu với sửa chữa tự động hóa.Snapshots.RaidZ.Nén tài liệu kết quả.…

Tìm phát âm một vài định nghĩa cùng tuấn kiệt của ZFS

*

VDEV

Virtual Device, về cơ bạn dạng nó là 1 trong thiết bị đại diện cho một hoặc những sản phẩm vật lý.

Ví dụ ở trong raid mềm thì /dev/md0 đại diện thay mặt mang lại raid-0 của 2 đĩa. Thì tại đây, /dev/md0 đó là vdev, và đã có tên bí quyết trình diễn theo từng một số loại tiếp sau đây.

Có 7 một số loại vdev vào ZFS:

disk (mặc định): đĩa đồ vật lý vào khối hệ thống.file: đường dẫn tuyệt vời mang lại file/images.mirror: cái này hệt như raid1 trong raid mềm vậy.raidz1/2/3: tương tự những raid mềm có thêm ổ đĩa parity. Nlỗi raid 5, raid 6…spare: đĩa cứng được khắc ghi là “hot spare” trong ZFS raid mềm.cachelog

Pooled Storage

Không giống hệt như đông đảo tệp tin system không giống. ZFS gộp phổ biến các tác dụng của tệp tin system và cai quản volume.

Các file system không giống chỉ rất có thể thống trị bên trên một partition. Còn đối với ZFS thì nó hoàn toàn có thể trải dài bên trên một dãy các disk/partition, sinh sản thành một pool. Và chúng ta có thể không ngừng mở rộng pool bằng cách thêm những disk/partition vào pool.

Nhưng lưu ý là vẫn thêm thì ko xóa được. Trừ khi chúng ta phân phối là vdev dạng spare như trình làng sống mục vdev trên tê.

Copy-on-write

Đây là một nhân tài thú vị của ZFS. Ở những tệp tin system khác thì lúc dữ liệu bị ghi đnai lưng, các bước sẽ ghi tức thì bên trên thiết yếu bloông xã tài liệu cội. Lỡ tất cả sự nỗ lực xảy ra thì dữ liệu cội lẫn dữ liệu bắt đầu ghi phần đông mất.

Còn so với ZFS thì lại không giống, ghi sửa đổi dữ liệu thì ZFS sẽ xào luộc bloông chồng dữ liệu kia ra một phiên bản, rồi tiến hành biến đổi bên trên bản copy đó. Sau Khi thay đổi tài liệu chấm dứt thì trỏ metadata về phiên bản copy đã có sửa đổi cơ. Sau kia giải phóng phiên bản cũ. Điều này hỗ trợ cho Lúc bao gồm sự thay xẩy ra thì phiên bản gốc vẫn còn nguim vẹn. Cũng có nghĩa là hệ thống ko đề xuất chạy fsck sau khi khối hệ thống bị crash.

Thế nhưng lại phát sinh sự việc là tài liệu ghi trên đĩa có khả năng sẽ bị phân mhình ảnh. Tất nhiên ZFS bao gồm một số chiến thuật để làm bớt sự phân mhình ảnh kia, bởi vì nội dung bài viết chỉ reviews các tư tưởng cơ bản đề nghị ko đi sâu phần này.

Dataset

Đây là thuật ngữ cần sử dụng chung đến ZFS file system, snapshots, clone, volume. Mỗi dataset là một cái thương hiệu độc nhất vô nhị.

Snapshots

Nhờ bao gồm Copy-on-write cơ mà bao gồm Snapshots. Snapshots sẽ theo dõi những biến đổi của hệ thống. Snapshots cất phiên bản cội của tệp tin system và một phiên bản live tệp tin system đựng hầu như chuyển đổi của khối hệ thống từ bỏ cơ hội snapshots được triển khai. Dữ liệu mới sẽ được ghi vào live file system, ko làm cho tốn thêm dung tích của hệ thống. Khi một file bị xóa, thì file tham chiếu bên trên snapshots cũng trở nên xóa.

Snapshots rất có thể được mount vào một điểm như thế nào kia để Phục hồi về phiên bạn dạng trước kia của một file như thế nào đó.

Hoặc có thể rollbaông chồng live sầu tệp tin system về phiên bản trước đó.

Toàn vẹn dữ liệu và thay thế từ bỏ động

Bất cứ đọng bao giờ tài liệu new được ghi vào ZFS, nó sẽ tạo một checksum mang lại tài liệu đó. Khi dữ liệu đó được phát âm, checksum được minh chứng. Nếu checksum không khớp, thì ZFS hiểu được vẫn gồm lỗi. ZFS vẫn auto nỗ lực sửa lỗi.

RAID-Z

ZFS có cung cấp Raidz1 bao gồm khả năng giống như Raid-5 với Raidz2 tương tự Raid-6. Đồng thời sửa đổi một trong những hạn chế của những loại raid này.

Khả năng lưu trữ và mở rộng lớn

Các tệp tin system trước đó được thiết kế bên trên nền 64-bit. Còn ZFS có thiết kế trên nền 128-bit. Đây là 1 trong những số lượng rất là lớn.

Hướng dẫn cài đặt đặt

Trong nội dung bài viết này chỉ tập trung lý giải cài đặt và thao tác bên trên CentOS 7.

#yum install http://tải về.zfsonlinux.org/epel/zfs-release..noarch.rpm#gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux

Kết đúng như bên dưới là chuẩn:

Tiếp theo ta sẽ sở hữu được 2 tùy chọn nhằm mua ZFS theo gói kABI-tracking kmod hay những DKMS. Ta đã mua ZFS theo gói kABI-tracking kmod nhằm tránh cần build lại ZFS mỗi lúc upgrade kernel. Còn gói DKMS thì dành riêng cho những người sử dụng mong mỏi vận dụng những tùy chỉnh toàn cục cho ZFS bên trên Linux.

Mặc định thì phiên bản gây ra ZFS được thông số kỹ thuật để setup theo gói DKMS, ta phải đưa lại thông số kỹ thuật qua kABI-tracking kmod.

Msinh sống file /etc/yum.repos.d/zfs.repo ra:

#vi /etc/yum.repos.d/zfs.repo

name=ZFS on Linux for EL7 - dkmsbaseurl=http://tải về.zfsonlinux.org/epel/7.6/$basearch/enabled=0 (vị trí này sửa từ 1 thành 0)metadata_expire=7dgpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux

name=ZFS on Linux for EL7 - kmodbaseurl=http://download.zfsonlinux.org/epel/7.6/kmod/$basearch/enabled=1 (khu vực này sửa từ bỏ 0 thành 1)metadata_expire=7dgpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux

Cài đặt:

#yum install zfs

Sau khi sở hữu ngừng thì reboot lại khối hệ thống.

Xem thêm: Bí Ẩn Những Người Chết Đi Sống Lại Ở Việt Nam, Những Vụ Chết Đi Sống Lại Kỳ Lạ Nhất Việt Nam

Kiểm tra coi module của ZFS đã làm được load chưa:

#lsmod | grep zfs

Kết quả:

zfs 2794866 3zunicode 331170 1 zfszavl 15236 1 zfszcommon 55411 1 zfsznvpair 89086 2 zfs,zcommonspl 92029 3 zfs,zcomtháng,znvpair

Nếu không tồn tại gì thì rất cần phải load thủ công các module của ZFS:

#modprobe zfs

Một số làm việc cơ bản

Cần sẵn sàng một trong những đĩa cứng để thao tác làm việc.

Tại đây Kỹ Thuật gồm 2 đĩa cứng là: /dev/sda và /dev/sdb, mỗi đĩa 20GB.

Ta sẽ tạo thêm các partition trường đoản cú các đĩa cứng này, càng những để làm thực hành cho dễ.

#parted -s /dev/sda mklabel gpt#parted -s /dev/sda unit mib mkpart primary 0% 33%#parted -s /dev/sda unit mib mkpart primary 33% 66%#parted -s /dev/sdomain authority unit mib mkpart primary 66% 100%#parted -s /dev/sdb mklabel gpt#parted -s /dev/sdb unit mib mkpart primary 0% 33%#parted -s /dev/sdb unit mib mkpart primary 33% 66%#parted -s /dev/sdb unit mib mkpart primary 66% 100%

Gõ:

#parted -l

để thấy list các partition vừa tạo, giờ đồng hồ ta đã được: /dev/sda1, /dev/sda2, /dev/sda3, /dev/sdb1, /dev/sdb2, /dev/sdb3, mỗi partition khoảng chừng 6.6 GB.

Đây là do Kỹ Thuật chỉ gồm 2 đĩa cứng cần new tạo ra những partition làm cho dễ dàng thực hành thực tế. Còn ví như mọi tín đồ có rất nhiều đĩa cứng thì không phải làm nuốm này.

*** OpenZFS có 2 ứng dụng là: zpool cùng zfs. Zpool sẽ phụ trách nhiệm vụ chế tạo cùng quản lý các ZFS pool. Còn Zfs vẫn đảm nhận nhiệm vụ chế tác và cai quản các Dataset.

Tạo cùng xóa một pool

Tạo một pool:

#zpool create ....

Ví dụ:

#zpool create pool01 /dev/sda1 /dev/sda2 /dev/sdb1 /dev/sdb2

Ở trường vừa lòng này, vdev đó là các partition.

Chạy lệnh bên dưới giúp thấy status của các pool hiện tại có:

#zpool status

pool: pool01state: ONLINEscan: none requestedconfig:

NAME STATE READ WRITE CKSUMpool01 ONLINE 0 0 0sda1 ONLINE 0 0 0sda2 ONLINE 0 0 0sdb1 ONLINE 0 0 0sdb2 ONLINE 0 0 0

errors: No known data errors

Hoặc là:

#zpool list

NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP.. DEDUP. HEALTH ALTROOTpool01 26.2G 110K 26.2G - 0% 0% 1.00x ONLINE -

Xác minc coi pool bao gồm sinh sản thành công:

#df -h

/dev/vda1 80G 1.6G 79G 2% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 17M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 379M 0 379M 0% /run/user/0pool01 26G 0 26G 0% /pool01

Ta thấy là pool01 được chế tạo ra tất cả kích thước khoảng 26GB được mount vào /pool01.

Size 26GB tương tự với dung lượng của tất cả 4 partition cùng lại. Ta rất có thể coi nlỗi pool này là một thứ hạng giống như raid mượt Raid-0 vậy.

Giờ bỏ pool vừa chế tạo đi:

#zpool destroy

Ví dụ:

#zpool destroy pool01

Mirrored pool

Tạo mirror:

#zpool create mirror ...

Ví dụ:

#zpool create pool02 mirror /dev/sda1 /dev/sdb1

Tại ngôi trường đúng theo này, vdev chính là mirror.

#zpool status

pool: pool02state: ONLINEscan: none requestedconfig:

NAME STATE READ WRITE CKSUMpool02 ONLINE 0 0 0mirror-0 ONLINE 0 0 0sda1 ONLINE 0 0 0sdb1 ONLINE 0 0 0

errors: No known data errors

Xác minh coi mirror có chế tạo thành công:

#df -h

Filesystem Size Used Avail Use% Mounted on/dev/vda1 80G 1.7G 79G 3% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 17M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 379M 0 379M 0% /run/user/0pool02 6.4G 0 6.4G 0% /pool02

Ta thấy pool02 được sản xuất cùng với 6.4GB vào được mount vào /pool02.

Size 6.4GB tương đương cùng với dung lượng của một partition phía trong mirror. Ta rất có thể xem mirror pool nhỏng là một trong raid mềm Raid-1 vậy.

Hủy pool vừa tạo:

#zpool destroy pool02

Giờ trường hợp ta lồng 2 mirror vào với nhau thì sao:

#zpool create pool03 mirror /dev/sda1 /dev/sda3 mirror /dev/sda2 /dev/sdb1

#zpool status

pool: pool03state: ONLINEscan: none requestedconfig:

NAME STATE READ WRITE CKSUMpool03 ONLINE 0 0 0mirror-0 ONLINE 0 0 0sda1 ONLINE 0 0 0sda3 ONLINE 0 0 0mirror-1 ONLINE 0 0 0sda2 ONLINE 0 0 0sdb1 ONLINE 0 0 0

errors: No known data errors

#df -h

Filesystem Size Used Avail Use% Mounted on/dev/vda1 80G 1.7G 79G 3% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 17M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 379M 0 379M 0% /run/user/0pool03 13G 0 13G 0% /pool03

Ta thấy pool03 được tạo cùng với 13GB, mount vào /pool03.

Size 13GB tương đương cùng với tổng dung lượng 2 partition. 2 mirror lồng nhau rứa này tương đương cùng với raid mượt Raid-1+0.

Hủy pool vừa tạo:

zpool destroy pool03

Raidz

Tạo một Raidz pool:

zpool create raidz ...

Ví dụ:

#zpool create pool04 raidz /dev/sda1 /dev/sdb2 /dev/sda3

#zpool status

pool: pool04state: ONLINEscan: none requestedconfig:

NAME STATE READ WRITE CKSUMpool04 ONLINE 0 0 0raidz1-0 ONLINE 0 0 0sda1 ONLINE 0 0 0sdb2 ONLINE 0 0 0sda3 ONLINE 0 0 0

errors: No known data errors

Quản lý vật dụng với ZFS pool

lúc một pool được chế tạo ra thì ta hoàn toàn có thể thêm hoặc xóa vdev spare, cache thoát ra khỏi pool. Thêm hoặc tách trang bị trường đoản cú mirrored pool hay là thay sản phẩm. Nhưng hầu như pool không có dự phòng hoặc raidz pool thì chẳng thể xóa đồ vật thoát ra khỏi pool được.

Giờ ta chế tạo ra một pool bắt đầu cùng với 2 dev là sda1sdb1. Sau kia thêm sda2 vào pool.

#zpool create pool05 /dev/sda1 /dev/sdb1

#zpool status

Chắc chắn là đã thấy pool05 được chế tác với 2 dev là sda1 cùng sdb1 rồi.

Thêm sda2 vào pool:

#zpool add pool05 sda2

#zpool status

pool: pool05state: ONLINEscan: none requestedconfig:

NAME STATE READ WRITE CKSUMpool05 ONLINE 0 0 0sda1 ONLINE 0 0 0sdb1 ONLINE 0 0 0sda2 ONLINE 0 0 0

errors: No known data errors

Như sẽ nói tự trước, ta cấp thiết xóa khỏi một dev thoát ra khỏi pool không dự phòng.

#zpool remove sầu pool05 /dev/sda2cannot remove /dev/sda2: only inactive sầu hot spares, cache, or log devices can be removed

Chúng ta hoàn toàn có thể thêm disk cùng bóc disk ra khỏi mirrored pool.

#zpool attach

#zpool detach

lúc dev bị lỗi, ta có thể thay thế nó:

zpool replace

Tạo một mirror pool với 2 dev là sda2sdb3:

#zpool create pool06 mirror /dev/sda2 /dev/sdb3

Giờ ta đưa sử sdb3 bị lỗi:

#dd if=/dev/zero of=/dev/sdb3

dd: error writing ‘/dev/sdb3’: No space left on device7+0 records in6+0 records out7300186112 bytes (7.3 GB) copied, 21.7305 s, 336 MB/s

Ta sẽ dùng “scrub” nhằm phân phát hiện nay sự nắm này.

#zpool scrub pool06

#zpool status

pool: pool06state: DEGRADEDstatus: One or more devices could not be used because the label is missing orinvalid. Sufficient replicas exist for the pool lớn continuefunctioning in a degraded state.action: Replace the device using "zpool replace".see: http://zfsonlinux.org/msg/ZFS-8000-4Jscan: scrub repaired 0B in 0h0m with 0 errors on Mon Apr 22 15:24:00 2019config:

NAME STATE READ WRITE CKSUMpool06 DEGRADED 0 0 0mirror-0 DEGRADED 0 0 0sda2 ONLINE 0 0 0sdb3 UNAVAIL 0 0 0 corrupted data

errors: No known data errors

Giờ ta sẽ vắt sdb3 cùng với sda3:

#zpool replace pool06 /dev/sdb3 /dev/sda3

#zpool status

pool: pool06state: ONLINEscan: resilvered 88.5K in 0h0m with 0 errors on Mon Atruyền thông quảng cáo 22 15:26:54 2019config:

NAME STATE READ WRITE CKSUMpool06 ONLINE 0 0 0mirror-0 ONLINE 0 0 0sda2 ONLINE 0 0 0sda3 ONLINE 0 0 0

errors: No known data errors

Tiện ích ZFS

Giờ họ đang chuyển hẳn sang thao tác với tiện ích zfs. Tạo, xóa dataset, file system compression, quotas, snapshots.

Xem thêm: Cách Mài Đá Thạch Anh - Bộ Đánh Bóng Đá Thạch Anh

Tạo cùng xóa filesystem:

#zfs create

Ví dụ:

#zfs create pool06/fs01

#zfs create pool06/fs02

#df -h

Filesystem Size Used Avail Use% Mounted on/dev/vda1 80G 1.7G 79G 3% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 17M 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 379M 0 379M 0% /run/user/0pool06 6.4G 128K 6.4G 1% /pool06pool06/fs01 6.4G 128K 6.4G 1% /pool06/fs01pool06/fs02 6.4G 128K 6.4G 1% /pool06/fs02

Với ouput nghỉ ngơi trên, ta thấy những filesystem new chế tạo đã có được mount sẵn vào trong các vị trí tương quan với pool.

Trong khi ta hoàn toàn có thể dùng option -o để chỉ định mountpoint, compression, quota,…

Xem list những zfs tệp tin system hiện nay có:

#zfs list

NAME USED AVAIL REFER MOUNTPOINTpool06 148K 6.36G 27K /pool06pool06/fs01 24K 6.36G 24K /pool06/fs01pool06/fs02 24K 6.36G 24K /pool06/fs02


Chuyên mục: Blogs