之前都是在FreeBSD使用ZFS磁區,嘗過ZFS的甜頭後當然就想在Linux OS試試看瞜,小編這次就在Oracle Linux上安裝ZFS套件,安裝過程其實不複雜,快來了解一下。
[範例情境]
作業系統:Oracle Linux 8.5
ZFS套件:openzfs 2.0.7-1
[安裝步驟]
01、選擇一般核心版本開機
02、檢查UEK版本核心套件版本
rpm -qa | grep kernel
03、移除uek核心
yum remove kernel-uek-5.4.17-2136.300.7.el8uek.x86_64
※補充說明:由於openzfs不支援uek核心,因此將uek核心移除,避免開機時誤選
04、檢查剩餘核心套件是否還有UEK版本
rpm -qa | grep kernel
05、更新開機選單
grub2-mkconfig -o /boot/grub2/grub.cfg
06、重新開機
reboot
07、安裝zfs套件安裝來源
dnf install -y https://zfsonlinux.org/epel/zfs-release.el8_5.noarch.rpm
08、匯入金鑰
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-zfsonlinux
09、安裝EPEL
dnf install -y oracle-epel-release-el8
10、安裝核心套件
dnf install -y kernel-devel
11、停用zfs傳統套件
dnf config-manager –disable zfs
12、切換到zfs-kmod套件
dnf config-manager –enable zfs-kmod
13、安裝zfs
dnf install zfs
14、設定ZFS模組載入
echo zfs >/etc/modules-load.d/zfs.conf
15、手動載入ZFS模組
/sbin/modprobe zfs
16、查看ZFS磁區
zfs list
17、查看硬碟列表
fdisk -l
18、將/dev/sdb建立成zfs磁區並啟動壓縮功能
zpool create -f -o ashift=12 local-SSD /dev/sdb
zfs set compression=lz4 local-SSD
df -h
19、查看ZFS磁區
zfs list
20、查看ZFS套件版本
cat /sys/module/zfs/version
[安裝自動快照套件]
01、安裝文字模式下載軟體
dnf install -y wget
02、安裝軟體編譯套件
dnf install -y gcc automake autoconf libtool make
03、下載zfs-auto-snapshot套件
wget https://github.com/zfsonlinux/zfs-auto-snapshot/archive/upstream/1.2.4.tar.gz
04、解壓縮zfs-auto-snapshot套件
tar zxvf 1.2.4.tar.gz
05、安裝zfs-auto-snapshot套件
cd zfs-auto-snapshot-upstream-1.2.4
make install
06、查看軟體執行檔路徑
whereis zfs-auto-snapshot
07、手動建立ZFS磁區快照
/usr/local/sbin/zfs-auto-snapshot -q -g –label=frequent –keep=24 //
08、查看ZFS磁區快照狀態
zfs list -t snapshot
09、還原快照
(a)、查看快照狀態
zfs list -t snapshot
(b)、還原快照(最新的快照)
zfs rollback ssd@zfs-auto-snap_frequent-2022-03-23-0538
(C)、還原其他快照(並非最新的快照)
zfs rollback ssd@zfs-auto-snap_frequent-2022-03-23-0537 -r
※補充說明:跨越最新的快照,必須使用「-r」參數進行「刪除跨越快照」的動作
10、刪除快照
(a)、刪除指定快照
zfs list -t snapshot
sudo zfs destroy ssd@zfs-auto-snap_frequent-2022-03-23-0335
zfs list -t snapshot
(b)、刪除所有快照
zfs list -t snapshot
sudo zfs list -H -o name -t snapshot | xargs -n1 zfs destroy
zfs list -t snapshot
※補充說明:強制刪除所有快照語法
sudo zfs list -H -o name -t snapshot | xargs -n1 zfs destroy -R
11、建立排程自動快照
vi /etc/cron.d/zfs-auto-snapshot
檔案內容如下所示:
PATH=”/usr/bin:/bin:/usr/sbin:/sbin”
*/5 * * * * root /usr/local/sbin/zfs-auto-snapshot -q -g –label=frequent –keep=24 //
00 * * * * root /usr/local/sbin/zfs-auto-snapshot -q -g –label=hourly –keep=24 //
59 23 * * * root /usr/local/sbin/zfs-auto-snapshot -q -g –label=daily –keep=14 //
59 23 * * 0 root /usr/local/sbin/zfs-auto-snapshot -q -g –label=weekly –keep=4 //
00 00 1 * * root /usr/local/sbin/zfs-auto-snapshot -q -g –label=monthly –keep=18 //
12、透過zfs clone複製特定快照掛載使用
(a)、查看現有的快照
zfs list -t snapshot
(b)、選定特定快照進行複製掛載
zfs clone ssd@zfs-auto-snap_frequent-2022-03-23-0430 ssd/new
(c)、查看磁區狀態
df -h
(d)、卸除掛載
zfs destroy ssd/new
※補充說明:
(1)、zfs clone語法格式
zfs clone [快照名稱] ssd/[自訂掛載名稱]
(2)、ssd為原本zfs的磁區名稱
13、啟動去除重複資料(dedup)功能
(a)、查詢ZFS磁區列表
zpool list
(b)、查詢ZFS磁區的dedup功能狀態
zfs get dedup ssd
(c)、設定ZFS磁區啟用dedup功能
zfs set dedup=on ssd
(d)、檢查ZFS磁區的dedup功能狀態
zfs get dedup ssd
14、檢查ZFS空間狀態
zpool get capacity,size,health,fragmentation
補充說明:
capacity:使用量
size:空間總量
health:健康狀態
fragmentation:空間破碎狀態
15、zfs-auto-snapshot參數說明
範例語法:
/usr/local/sbin/zfs-auto-snapshot –prefix=”zfs-test” -q -g –keep=24 //
參數說明:
(a)、「–prefix=”zfs-test”」
取代原本預設的”zfs-auto-snap”快照名稱
ssd@zfs-test_weekly-2022-03-23-0720
(b)、「-q」
安靜模式,不顯示任何訊息
(c)、「-g」
將記錄寫入syslog,log預設路徑「/var/log/messages」
(d)、「–label=weekly」
自訂快照標籤名稱,會顯示在快照命名的日期之前
ssd@zfs-auto-snap_weekly-2022-03-23-0720
(e)、「//」
不指定zfs磁區,全面進行快照。
如需指定zfs磁區則使用下列語法:
/usr/local/sbin/zfs-auto-snapshot –prefix=”zfs-test” -q -g –keep=24 ssd