OpenZFS をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
概要とか [[https://openzfs.org/wiki/Main_Page?utm_source=...
ドキュメント [[https://openzfs.github.io/openzfs-docs/>+h...
github [[https://github.com/openzfs/zfs>+https://github.c...
高速なストレージ、小さいファイルにも十分対応できて大きな...
cephでクラスターファイルシステムがスケーラブルなのでしょ...
HDDが飛んだ際にはメール通知、slack通知が可能です. 設定次...
&size(10){最近のadaptec SmartRAIDは無口になってアラート音...
ここでは rockylinux9 に OpenZFS を入れてみたいと思います
***導入 [#na15a1d6]
専用のリポジトリを追加します. 参照先 [[https://openzfs.gi...
#code(nonumber){{
[root@zfs ~]# cat /etc/redhat-release
Rocky Linux release 9.7 (Blue Onyx)
[root@zfs ~]# uname -r
5.14.0-611.5.1.el9_7.x86_64
[root@zfs ~]# dnf install https://zfsonlinux.org/epel/zfs...
[root@zfs ~]# ls /etc/yum.repos.d/
rocky-addons.repo rocky-devel.repo rocky-extras.repo r...
[root@zfs ~]#
}}
zfsのカーネルモジュールですが、dkms版とkABI版がある. dkms...
まぁそれはそれでいいのですが、そのkernel向けとして特化し...
ここでは kABI版を使います
そして現時点(2026.04)で最新版の zfs-2.4.1 を使いたいと思...
#code(nonumber){{
[root@zfs ~]# dnf repolist --all
:
zfs OpenZFS for EL9 - dkms ...
:
zfs-latest-kmod OpenZFS latest for EL9 - kmod ...
:
[root@zfs ~]# dnf config-manager --disable zfs
[root@zfs ~]# dnf config-manager --enable zfs-latest-kmod
}}
ここで、「dnf install zfs」でkernel moduleらがインストー...
#code(nonumber){{
[root@zfs ~]# dnf update kernel kernel-core kernel-module...
[root@zfs ~]# grubby --update-kernel ALL --args selinux=0
[root@zfs ~]# grub2-mkconfig -o /boot/efi/EFI/rocky/grub....
[root@zfs ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@zfs ~]# reboot
(再ログイン)
[root@zfs ~]# uname -r
5.14.0-611.47.1.el9_7.x86_64
[root@zfs ~]# dnf install zfs
[root@zfs ~]# ls -l /lib/modules/$(uname -r)/weak-updates...
total 0
lrwxrwxrwx. 1 root root 58 Apr 26 03:01 spl.ko -> /lib/mo...
lrwxrwxrwx. 1 root root 58 Apr 26 03:01 zfs.ko -> /lib/mo...
[root@zfs ~]#
}}
と、&color(magenta){5.14.0-611.47.1}; なのですが、&color(...
***設計 [#md1dc950]
色々調べて、小さいファイルにも大きなファイルにも有効にし...
|BGCOLOR(YELLOW):項目|BGCOLOR(YELLOW):要件|BGCOLOR(YELLOW...
|HDD| vdevを複数作る. 多い方がいい|実用量の80%...
|special device|metadataと小さいファイルを置く | 8TB ミラ...
|SLOG|NFSで同期書き込みなら有効、非同期なら微妙. 20GBほど...
|L2ARC|キャッシュ. 主メモリーの5倍から10倍以内|主メモリ...
|主メモリ|一次キャッシュ| 256GBとか 128GB||
|CPU|クロック高め、core数そこそこ|3.0から3.5GHz, 24-48コ...
|nic|25GbEか100GbE|100GbE|swithing HUBのuplinkポートに繋...
1Uのフロントに12slotsなnvme U.2とHBAを付けて、24bay JBOD...
一応拡張は可能っぽいけど、初めに作った構成を変更せず使う...
っでこのようなストレージは作れないので仮想マシンで手順だ...
***構築 [#abf9deb5]
HDDは3本RAIDZ単位で2つ(2vdev). 合計6HDD
special deviceは SSDで2枚のmirrorで1vdev
SLOGもSSD2枚でmirrorで
L2ARCはSSD1枚
ってな感じで仮想マシンを作ってみた
#code(nonumber){{
[root@zfs ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 32G 0 disk
├sda1 8:1 0 1M 0 part
├sda2 8:2 0 1G 0 part /boot
├sda3 8:3 0 128M 0 part [SWAP]
├sda4 8:4 0 1K 0 part
└sda5 8:5 0 30.9G 0 part /
sdb 8:16 0 100G 0 disk sdbからsdqの100Gは ...
sdc 8:32 0 100G 0 disk
sdd 8:48 0 100G 0 disk
sde 8:64 0 100G 0 disk
sdf 8:80 0 100G 0 disk
sdg 8:96 0 100G 0 disk
sdh 8:112 0 50G 0 disk special device
sdi 8:128 0 50G 0 disk special device
sdj 8:144 0 64G 0 disk SLOG
sdk 8:160 0 64G 0 disk SLOG
sdl 8:176 0 32G 0 disk L2ARC
[root@zfs ~]#
}}
なので
#code(nonumber){{
zpool create -o ashift=12 tank \
raidz sdb sdc sdd \
raidz sde sdf sdg \
special mirror sdh sdi \
log mirror sdj sdk \
cache sdl
}}
で完成になるが、
「PATHのデバイス名での指定はよくなく、「/dev/disk/by-id」...
#code(nonumber){{
[root@zfs ~]# ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:02.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:03.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:04.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:05.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:06.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:07.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:08.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:09.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:0a.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:0b.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:0c.0-...
[root@zfs ~]#
}}
実機では「/dev/disk/by-id」が望ましい。
理由はHDD/SSD/nvmeのシリアル番号で指定することになるので。
zfsはHDDの障害時にLEDランプなんて異常を提示しないので、デ...
なので実際には
#code(nonumber){{
[root@zfs ~]# modprobe zfs
[root@zfs ~]# zpool create -o ashift=12 tank \
raidz pci-0000:09:02.0-scsi-0:0:0:1 \
pci-0000:09:03.0-scsi-0:0:0:2 \
pci-0000:09:04.0-scsi-0:0:0:3 \
raidz pci-0000:09:05.0-scsi-0:0:0:4 \
pci-0000:09:06.0-scsi-0:0:0:5 \
pci-0000:09:07.0-scsi-0:0:0:6 \
special mirror pci-0000:09:08.0-scsi-0:0:0:7 \
pci-0000:09:09.0-scsi-0:0:0:8 \
log mirror pci-0000:09:0a.0-scsi-0:0:0:9 \
pci-0000:09:0b.0-scsi-0:0:0:10 \
cache pci-0000:09:0c.0-scsi-0:0:0:11
[root@zfs ~]# zpool status tank
pool: tank
state: ONLINE
config:
NAME STATE REA...
tank ONLINE ...
raidz1-0 ONLINE ...
pci-0000:09:02.0-scsi-0:0:0:1 ONLINE ...
pci-0000:09:03.0-scsi-0:0:0:2 ONLINE ...
pci-0000:09:04.0-scsi-0:0:0:3 ONLINE ...
raidz1-1 ONLINE ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 ONLINE ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
special
mirror-2 ONLINE ...
pci-0000:09:08.0-scsi-0:0:0:7 ONLINE ...
pci-0000:09:09.0-scsi-0:0:0:8 ONLINE ...
logs
mirror-3 ONLINE ...
pci-0000:09:0a.0-scsi-0:0:0:9 ONLINE ...
pci-0000:09:0b.0-scsi-0:0:0:10 ONLINE ...
cache
pci-0000:09:0c.0-scsi-0:0:0:11 ONLINE ...
errors: No known data errors
[root@zfs ~]#
}}
となる
***mount [#a90079ad]
作ったzfsボリュームをmountします
zfs の ストレージプール名を「tank」にしたので、ファイルシ...
#code(nonumber){{
[root@zfs ~]# df -lTht zfs
Filesystem Type Size Used Avail Use% Mounted on
tank zfs 386G 128K 386G 1% /tank
[root@zfs ~]#
(zfsコマンドからの確認としては)
[root@zfs ~]# zfs get mountpoint
NAME PROPERTY VALUE SOURCE
tank mountpoint /tank default
[root@zfs ~]#
}}
初期構築時なので、作った名称がそのまま使われてますが、「z...
#code(nonumber){{
[root@zfs ~]# zfs set mountpoint=/home tank
[root@zfs ~]# zfs get mountpoint
NAME PROPERTY VALUE SOURCE
tank mountpoint /home local
[root@zfs ~]# df -lTht zfs
Filesystem Type Size Used Avail Use% Mounted on
tank zfs 386G 128K 386G 1% /home
[root@zfs ~]#
}}
と変更が可能です。従来の /etc/fstab らの調整は不要です。
加えて/appsと/homeを同じプール(tank)で賄い事も可能で、ま...
そしてmountpointで場所を指定します
#code(nonumber){{
[root@zfs ~]# zfs set mountpoint=none tank
[root@zfs ~]# zfs create tank/home
[root@zfs ~]# zfs create tank/apps
(確認)
[root@zfs ~]# zfs list -r tank
NAME USED AVAIL REFER MOUNTPOINT
tank 792K 385G 96K none
tank/apps 96K 385G 96K none
tank/home 96K 385G 96K none
[root@zfs ~]#
[root@zfs ~]# zfs set mountpoint=/home tank/home
[root@zfs ~]# zfs set mountpoint=/apps tank/apps
[root@zfs ~]# df -lTht zfs
Filesystem Type Size Used Avail Use% Mounted on
tank/home zfs 386G 128K 386G 1% /home
tank/apps zfs 386G 128K 386G 1% /apps
[root@zfs ~]#
}}
これらをnfsでexportする際ですが、疑似ファイルシステムを作...
#code(nonumber){{
/home 192.168.1.0/24(rw,sync,no_subtree_check)
/apps 192.168.1.0/24(rw,sync,no_subtree_check)
}}
で十分.
ZFSならではの「sharenfs」プロパティで公開する方法もありま...
#code(nonumber){{
zfs set sharenfs="rw=@192.168.1.0/24" tank/home
}}
zfsコマンドで調整する形になりますが、まぁー「/etc/exports...
あとスナップショットに関してですが、
#code(nonumber){{
[root@zfs ~]# zfs create tank/home/userA
[root@zfs ~]# zfs create tank/home/userB
[root@zfs ~]# zfs set mountpoint=/home/userA tank/home/us...
[root@zfs ~]# zfs set mountpoint=/home/userB tank/home/us...
[root@zfs ~]# mkdir /home/userC
}}
と/home/userCだけデータセットからの切り出しではなくmkdir...
っで
#code(nonumber){{
zfs snapshot tank/home@backup1
}}
とすると/home/userAと/home/userBを含まない形でスナップシ...
もし/home全体のスナップショットが欲しければ
#code(nonumber){{
zfs snapshot -r tank/home@monday_backup
}}
と「-r」を付ける。
透過的圧縮。ファイルをそこに置いておくと自動的に内部で圧...
データセットを指定して行います
#code(nonumber){{
zfs set compression=lz4 tank/home/userA
}}
これで/home/userAに集まるファイルはすべて透過的圧縮の対象...
クオート設定
#code(nonumber){{
zfs set quota=1T tank/home/userA
zfs set quota=200G tank/home/userA
}}
とデータセットを作った領域に設けられます。単に「mkdir /ho...
解除方法は
#code(nonumber){{
zfs set quota=none tank/home/userA
}}
残り幾つ使えるかは「zfs list」で見れて
#code(nonumber){{
[root@zfs ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 996K 385G 96K none
tank/apps 96K 385G 96K /apps
tank/home 288K 385G 96K /home
tank/home/userA 96K 385G 96K /home/userA
tank/home/userB 96K 200G 96K /home/userB
[root@zfs ~]#
}}
と表示される。「AVAIL」に出ます
***ZFS Event Daemon(zed)による通知機能を作る [#n70de1ab]
ZFSでは使っているエンクロージャ、JBODによりますが、HDD/nv...
でもそれだけでは不十分でメール通知を有効にしてみます
使用するのはzed. zfs-zed.service です。
でもこのzedは「ローカルのメール送信コマンドを叩くのみ」な...
ここでは簡易な方法として msmtp での構築を行ってみます. っ...
#code(nonumber){{
[root@zfs ~]# dnf install epel-release
[root@zfs ~]# dnf install msmtp s-nail
(確認)
[root@zfs ~]# alternatives --list
:
mta auto /usr/bin/msmtp
mailx auto /usr/bin/mailx.s-nail
[root@zfs ~]#
}}
そして設定ファイル「/etc/smtprc」を作成します
下記はGmailを使った場合です。
Gamilのpasswordは「アプリパスワード」という物で
1.Googleアカウントに入って
2.「セキュリティーとログイン」ページに行って
3.「Googleにログインする方法」欄の「2段階認証プロセス...
4.「アプリパスワード」欄がでますので、そこで「>」をクリ...
「アプリパスワード」はその「作成」ボタンを押下した瞬間し...
#code(nonumber){{
[root@zfs ~]# vi /etc/msmtprc
defaults
auth on
tls on
tls_trust_file /etc/pki/tls/certs/ca-bundle.crt
logfile /var/log/msmtp.log
account gmail
host smtp.gmail.com
port 587
from xxxxxxxxxxxxxxxxxxxxxxx@gmail.com
user xxxxxxxxxxxxxxxxxxxxxxx@gmail.com
password aaaabbbbccccdddd
account default : gmail
}}
っでテストメールを出してみる。
#code(nonumber){{
[root@zfs ~]# echo "test mail" | mail -s "test" xxxxxxxxx...
}}
これでメールが届いたらok
そしてzedの設定を行います
#code(nonumber){{
[root@zfs ~]# vi /etc/zfs/zed.d/zed.rc
[root@zfs ~]# sed -e '/^#/d' -e '/^$/d' /etc/zfs/zed.d/ze...
ZED_EMAIL_ADDR="xxxxxxxxxxxxxxxxxxxxxxx@gmail.com"
ZED_NOTIFY_VERBOSE=1 <-...
ZED_USE_ENCLOSURE_LEDS=1
ZED_SYSLOG_SUBCLASS_EXCLUDE="history_event"
[root@zfs ~]# systemctl restart zfs-zed.service
}}
テストとしては「zpool scrub tank」とかで。
#code(nonumber){{
[root@zfs ~]# zpool scrub tank
}}
っで、メールが届くか確認します。
「ZED_NOTIFY_VERBOSE=1」ですが、「/etc/zfs/zed.d/zed.rc」...
#code(nonumber){{
# Notification verbosity.
# If set to 0, suppress notification if the pool is hea...
# If set to 1, send notification regardless of pool hea...
}}
pool自体に問題がなければ通知しない。ZED_NOTIFY_VERBOSEを...
本番は無効でいいのかなと。
***とんだHDDをLEDで場所を知らせる [#e4835211]
zedの設定ファイル「/etc/zfs/zed.d/zed.rc」には
「ZED_USE_ENCLOSURE_LEDS=1」との設定項目がある. 該当部分は
#code(nonumber){{
# Turn on/off enclosure LEDs when drives get DEGRADED/FAU...
# device mapper and multipath devices as well. This work...
# and NVMe PCI drives (assuming they're supported by Linu...
}}
と書かれているので、多分システム次第で飛んだHDDの場所が分...
Broadcom の HBA に接続していると
#code(nonumber){{
[root@zfs ~]# ls /sys/class/enclosure/1\:0\:14\:0/Slot11/...
sdn
[root@zfs ~]#
}}
とデバイス名がでます。なので、zedによるLED点灯は行けるか...
***意図的に HDD を飛ばしてみる [#z4d2cd65]
#code(nonumber){{
[root@zfs ~]# zpool status
pool: tank
state: ONLINE
scan: scrub repaired 0B in 00:00:00 with 0 errors on Fr...
config:
NAME STATE REA...
tank ONLINE ...
raidz1-0 ONLINE ...
pci-0000:09:02.0-scsi-0:0:0:1 ONLINE ...
pci-0000:09:03.0-scsi-0:0:0:2 ONLINE ...
pci-0000:09:04.0-scsi-0:0:0:3 ONLINE ...
raidz1-1 ONLINE ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 ONLINE ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
special
mirror-2 ONLINE ...
pci-0000:09:08.0-scsi-0:0:0:7 ONLINE ...
pci-0000:09:09.0-scsi-0:0:0:8 ONLINE ...
logs
mirror-3 ONLINE ...
pci-0000:09:0a.0-scsi-0:0:0:9 ONLINE ...
pci-0000:09:0b.0-scsi-0:0:0:10 ONLINE ...
cache
pci-0000:09:0c.0-scsi-0:0:0:11 ONLINE ...
errors: No known data errors
[root@zfs ~]#
}}
この状態で事象発生させてみる (proxmoxでOSDノードのHDDを選...
「pci-0000:09:06.0-scsi-0:0:0:5」の部分をDetachさせてみた
#code(nonumber){{
[root@zfs ~]# zpool status
pool: tank
state: DEGRADED
status: One or more devices have been removed.
Sufficient replicas exist for the pool to continu...
degraded state.
action: Online the device using zpool online' or replace ...
'zpool replace'.
scan: scrub repaired 0B in 00:00:00 with 0 errors on Fr...
config:
NAME STATE REA...
tank DEGRADED ...
raidz1-0 ONLINE ...
pci-0000:09:02.0-scsi-0:0:0:1 ONLINE ...
pci-0000:09:03.0-scsi-0:0:0:2 ONLINE ...
pci-0000:09:04.0-scsi-0:0:0:3 ONLINE ...
raidz1-1 DEGRADED ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 REMOVED ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
special
mirror-2 ONLINE ...
pci-0000:09:08.0-scsi-0:0:0:7 ONLINE ...
pci-0000:09:09.0-scsi-0:0:0:8 ONLINE ...
logs
mirror-3 ONLINE ...
pci-0000:09:0a.0-scsi-0:0:0:9 ONLINE ...
pci-0000:09:0b.0-scsi-0:0:0:10 ONLINE ...
cache
pci-0000:09:0c.0-scsi-0:0:0:11 ONLINE ...
errors: No known data errors
[root@zfs ~]#
}}
これは意図的に抜いても同じようになります。
実機では恐らくそのHDDに問題があって利用できなくなるとzfs...
#code(nonumber){{
[root@zfs ~]# zpool offline tank pci-0000:09:06.0-scsi-0:...
[root@zfs ~]# zpool status
:
raidz1-1 DEGRADED ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 OFFLINE ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
:
[root@zfs ~]#
}}
次に、飛んだHDDを抜いて、新しいHDDをシステムに入れます。
この際、追加するHDDがどこかのzfsで使っていたHDDなら大事故...
その際は「ZFSラベルを消す」ことが大事。
#code(nonumber){{
[root@zfs ~]# zpool labelclear -f "/dev/disk/by-path/pci...
あるいは
[root@zfs ~]# wipefs -a "/dev/disk/by-path/pci-0000:09:0...
[root@zfs ~]# sgdisk --zap-all "/dev/disk/by-path/pci-0...
}}
でラベルを消す
その上で差し替え操作を行います
#code(nonumber){{
[root@zfs ~]# zpool replace tank "pci-0000:09:06.0-scsi-0...
}}
今回は同じPATHになってますが、気にしなくてもいいみたい。...
***posix acl [#fdc03c58]
デフォではPOSIX ACLは有効になっていないです。
なので有効にします
#code(nonumber){{
[root@zfs ~]# zfs set acltype=posixacl tank/home
[root@zfs ~]# zfs get acltype
NAME PROPERTY VALUE SOURCE
tank acltype off default
tank/apps acltype off default
tank/home acltype posix local
tank/home/userA acltype posix inherited from tank/...
tank/home/userB acltype posix inherited from tank/...
[root@zfs ~]#
}}
tank/homeでaclが有効ならそれが配下にも波及されるみたい
#code(nonumber){{
[root@zfs ~]# setfacl -m user:cryosparc:rx /home/saber
[root@zfs ~]# getfacl /home/saber/
getfacl: Removing leading '/' from absolute path names
# file: home/saber/
# owner: saber
# group: saber
user::rwx
user:cryosparc:r-x
group::---
mask::r-x
other::---
[root@zfs ~]#
}}
っとなるみたい.
nfs先では?
まずは
#code(nonumber){{
[root@zfs ~]# vi /etc/exports
/home 192.168.0.0/24(rw,sync,no_subtree_check)
/apps 192.168.0.0/24(rw,sync,no_subtree_check)
[root@zfs ~]# systemctl enable nfs-server --now
}}
っでnfs-clientから
#code(nonumber){{
[root@rockylinux9 ~]# mount -t nfs zfs:/home /home
[root@rockylinux9 ~]# df -Tht nfs4
Filesystem Type Size Used Avail Use% Mounted on
zfs:/home nfs4 386G 1.0M 386G 1% /home
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# ls -l /home
total 2
drwx------. 2 cryosparc cryosparc 5 May 3 00:10 cryosparc
drwxr-x---+ 2 saber saber 5 May 3 00:09 saber
drwxr-xr-x. 2 root root 2 May 2 04:18 userA
drwxr-xr-x. 2 root root 2 May 2 04:19 userB
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# getfacl /home/saber/
getfacl: Removing leading '/' from absolute path names
# file: home/saber/
# owner: saber
# group: saber
user::rwx
group::r-x
other::---
[root@rockylinux9 ~]# umount /home
(nfs v3でmount)
[root@rockylinux9 ~]# mount -t nfs -o vers=3 zfs:/home /h...
[root@rockylinux9 ~]# ls -l /home
total 2
drwx------. 2 cryosparc cryosparc 5 May 3 00:10 cryosparc
drwxr-x---+ 2 saber saber 5 May 3 00:09 saber
drwxr-xr-x. 2 root root 2 May 2 04:18 userA
drwxr-xr-x. 2 root root 2 May 2 04:19 userB
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# getfacl /home/saber/
getfacl: Removing leading '/' from absolute path names
# file: home/saber/
# owner: saber
# group: saber
user::rwx
user:cryosparc:r-x <--- ACLが効いている
group::---
mask::r-x
other::---
[root@rockylinux9 ~]#
}}
zfsに関わらず、普通にnfs versiomn3でexportすれば、getfac/...
***zfs同士のバックアップ [#gf1d5033]
終了行:
概要とか [[https://openzfs.org/wiki/Main_Page?utm_source=...
ドキュメント [[https://openzfs.github.io/openzfs-docs/>+h...
github [[https://github.com/openzfs/zfs>+https://github.c...
高速なストレージ、小さいファイルにも十分対応できて大きな...
cephでクラスターファイルシステムがスケーラブルなのでしょ...
HDDが飛んだ際にはメール通知、slack通知が可能です. 設定次...
&size(10){最近のadaptec SmartRAIDは無口になってアラート音...
ここでは rockylinux9 に OpenZFS を入れてみたいと思います
***導入 [#na15a1d6]
専用のリポジトリを追加します. 参照先 [[https://openzfs.gi...
#code(nonumber){{
[root@zfs ~]# cat /etc/redhat-release
Rocky Linux release 9.7 (Blue Onyx)
[root@zfs ~]# uname -r
5.14.0-611.5.1.el9_7.x86_64
[root@zfs ~]# dnf install https://zfsonlinux.org/epel/zfs...
[root@zfs ~]# ls /etc/yum.repos.d/
rocky-addons.repo rocky-devel.repo rocky-extras.repo r...
[root@zfs ~]#
}}
zfsのカーネルモジュールですが、dkms版とkABI版がある. dkms...
まぁそれはそれでいいのですが、そのkernel向けとして特化し...
ここでは kABI版を使います
そして現時点(2026.04)で最新版の zfs-2.4.1 を使いたいと思...
#code(nonumber){{
[root@zfs ~]# dnf repolist --all
:
zfs OpenZFS for EL9 - dkms ...
:
zfs-latest-kmod OpenZFS latest for EL9 - kmod ...
:
[root@zfs ~]# dnf config-manager --disable zfs
[root@zfs ~]# dnf config-manager --enable zfs-latest-kmod
}}
ここで、「dnf install zfs」でkernel moduleらがインストー...
#code(nonumber){{
[root@zfs ~]# dnf update kernel kernel-core kernel-module...
[root@zfs ~]# grubby --update-kernel ALL --args selinux=0
[root@zfs ~]# grub2-mkconfig -o /boot/efi/EFI/rocky/grub....
[root@zfs ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
[root@zfs ~]# reboot
(再ログイン)
[root@zfs ~]# uname -r
5.14.0-611.47.1.el9_7.x86_64
[root@zfs ~]# dnf install zfs
[root@zfs ~]# ls -l /lib/modules/$(uname -r)/weak-updates...
total 0
lrwxrwxrwx. 1 root root 58 Apr 26 03:01 spl.ko -> /lib/mo...
lrwxrwxrwx. 1 root root 58 Apr 26 03:01 zfs.ko -> /lib/mo...
[root@zfs ~]#
}}
と、&color(magenta){5.14.0-611.47.1}; なのですが、&color(...
***設計 [#md1dc950]
色々調べて、小さいファイルにも大きなファイルにも有効にし...
|BGCOLOR(YELLOW):項目|BGCOLOR(YELLOW):要件|BGCOLOR(YELLOW...
|HDD| vdevを複数作る. 多い方がいい|実用量の80%...
|special device|metadataと小さいファイルを置く | 8TB ミラ...
|SLOG|NFSで同期書き込みなら有効、非同期なら微妙. 20GBほど...
|L2ARC|キャッシュ. 主メモリーの5倍から10倍以内|主メモリ...
|主メモリ|一次キャッシュ| 256GBとか 128GB||
|CPU|クロック高め、core数そこそこ|3.0から3.5GHz, 24-48コ...
|nic|25GbEか100GbE|100GbE|swithing HUBのuplinkポートに繋...
1Uのフロントに12slotsなnvme U.2とHBAを付けて、24bay JBOD...
一応拡張は可能っぽいけど、初めに作った構成を変更せず使う...
っでこのようなストレージは作れないので仮想マシンで手順だ...
***構築 [#abf9deb5]
HDDは3本RAIDZ単位で2つ(2vdev). 合計6HDD
special deviceは SSDで2枚のmirrorで1vdev
SLOGもSSD2枚でmirrorで
L2ARCはSSD1枚
ってな感じで仮想マシンを作ってみた
#code(nonumber){{
[root@zfs ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 32G 0 disk
├sda1 8:1 0 1M 0 part
├sda2 8:2 0 1G 0 part /boot
├sda3 8:3 0 128M 0 part [SWAP]
├sda4 8:4 0 1K 0 part
└sda5 8:5 0 30.9G 0 part /
sdb 8:16 0 100G 0 disk sdbからsdqの100Gは ...
sdc 8:32 0 100G 0 disk
sdd 8:48 0 100G 0 disk
sde 8:64 0 100G 0 disk
sdf 8:80 0 100G 0 disk
sdg 8:96 0 100G 0 disk
sdh 8:112 0 50G 0 disk special device
sdi 8:128 0 50G 0 disk special device
sdj 8:144 0 64G 0 disk SLOG
sdk 8:160 0 64G 0 disk SLOG
sdl 8:176 0 32G 0 disk L2ARC
[root@zfs ~]#
}}
なので
#code(nonumber){{
zpool create -o ashift=12 tank \
raidz sdb sdc sdd \
raidz sde sdf sdg \
special mirror sdh sdi \
log mirror sdj sdk \
cache sdl
}}
で完成になるが、
「PATHのデバイス名での指定はよくなく、「/dev/disk/by-id」...
#code(nonumber){{
[root@zfs ~]# ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 10 Apr 26 13:29 pci-0000:09:01.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:02.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:03.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:04.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:05.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:06.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:07.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:08.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:09.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:0a.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:0b.0-...
lrwxrwxrwx. 1 root root 9 Apr 26 13:29 pci-0000:09:0c.0-...
[root@zfs ~]#
}}
実機では「/dev/disk/by-id」が望ましい。
理由はHDD/SSD/nvmeのシリアル番号で指定することになるので。
zfsはHDDの障害時にLEDランプなんて異常を提示しないので、デ...
なので実際には
#code(nonumber){{
[root@zfs ~]# modprobe zfs
[root@zfs ~]# zpool create -o ashift=12 tank \
raidz pci-0000:09:02.0-scsi-0:0:0:1 \
pci-0000:09:03.0-scsi-0:0:0:2 \
pci-0000:09:04.0-scsi-0:0:0:3 \
raidz pci-0000:09:05.0-scsi-0:0:0:4 \
pci-0000:09:06.0-scsi-0:0:0:5 \
pci-0000:09:07.0-scsi-0:0:0:6 \
special mirror pci-0000:09:08.0-scsi-0:0:0:7 \
pci-0000:09:09.0-scsi-0:0:0:8 \
log mirror pci-0000:09:0a.0-scsi-0:0:0:9 \
pci-0000:09:0b.0-scsi-0:0:0:10 \
cache pci-0000:09:0c.0-scsi-0:0:0:11
[root@zfs ~]# zpool status tank
pool: tank
state: ONLINE
config:
NAME STATE REA...
tank ONLINE ...
raidz1-0 ONLINE ...
pci-0000:09:02.0-scsi-0:0:0:1 ONLINE ...
pci-0000:09:03.0-scsi-0:0:0:2 ONLINE ...
pci-0000:09:04.0-scsi-0:0:0:3 ONLINE ...
raidz1-1 ONLINE ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 ONLINE ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
special
mirror-2 ONLINE ...
pci-0000:09:08.0-scsi-0:0:0:7 ONLINE ...
pci-0000:09:09.0-scsi-0:0:0:8 ONLINE ...
logs
mirror-3 ONLINE ...
pci-0000:09:0a.0-scsi-0:0:0:9 ONLINE ...
pci-0000:09:0b.0-scsi-0:0:0:10 ONLINE ...
cache
pci-0000:09:0c.0-scsi-0:0:0:11 ONLINE ...
errors: No known data errors
[root@zfs ~]#
}}
となる
***mount [#a90079ad]
作ったzfsボリュームをmountします
zfs の ストレージプール名を「tank」にしたので、ファイルシ...
#code(nonumber){{
[root@zfs ~]# df -lTht zfs
Filesystem Type Size Used Avail Use% Mounted on
tank zfs 386G 128K 386G 1% /tank
[root@zfs ~]#
(zfsコマンドからの確認としては)
[root@zfs ~]# zfs get mountpoint
NAME PROPERTY VALUE SOURCE
tank mountpoint /tank default
[root@zfs ~]#
}}
初期構築時なので、作った名称がそのまま使われてますが、「z...
#code(nonumber){{
[root@zfs ~]# zfs set mountpoint=/home tank
[root@zfs ~]# zfs get mountpoint
NAME PROPERTY VALUE SOURCE
tank mountpoint /home local
[root@zfs ~]# df -lTht zfs
Filesystem Type Size Used Avail Use% Mounted on
tank zfs 386G 128K 386G 1% /home
[root@zfs ~]#
}}
と変更が可能です。従来の /etc/fstab らの調整は不要です。
加えて/appsと/homeを同じプール(tank)で賄い事も可能で、ま...
そしてmountpointで場所を指定します
#code(nonumber){{
[root@zfs ~]# zfs set mountpoint=none tank
[root@zfs ~]# zfs create tank/home
[root@zfs ~]# zfs create tank/apps
(確認)
[root@zfs ~]# zfs list -r tank
NAME USED AVAIL REFER MOUNTPOINT
tank 792K 385G 96K none
tank/apps 96K 385G 96K none
tank/home 96K 385G 96K none
[root@zfs ~]#
[root@zfs ~]# zfs set mountpoint=/home tank/home
[root@zfs ~]# zfs set mountpoint=/apps tank/apps
[root@zfs ~]# df -lTht zfs
Filesystem Type Size Used Avail Use% Mounted on
tank/home zfs 386G 128K 386G 1% /home
tank/apps zfs 386G 128K 386G 1% /apps
[root@zfs ~]#
}}
これらをnfsでexportする際ですが、疑似ファイルシステムを作...
#code(nonumber){{
/home 192.168.1.0/24(rw,sync,no_subtree_check)
/apps 192.168.1.0/24(rw,sync,no_subtree_check)
}}
で十分.
ZFSならではの「sharenfs」プロパティで公開する方法もありま...
#code(nonumber){{
zfs set sharenfs="rw=@192.168.1.0/24" tank/home
}}
zfsコマンドで調整する形になりますが、まぁー「/etc/exports...
あとスナップショットに関してですが、
#code(nonumber){{
[root@zfs ~]# zfs create tank/home/userA
[root@zfs ~]# zfs create tank/home/userB
[root@zfs ~]# zfs set mountpoint=/home/userA tank/home/us...
[root@zfs ~]# zfs set mountpoint=/home/userB tank/home/us...
[root@zfs ~]# mkdir /home/userC
}}
と/home/userCだけデータセットからの切り出しではなくmkdir...
っで
#code(nonumber){{
zfs snapshot tank/home@backup1
}}
とすると/home/userAと/home/userBを含まない形でスナップシ...
もし/home全体のスナップショットが欲しければ
#code(nonumber){{
zfs snapshot -r tank/home@monday_backup
}}
と「-r」を付ける。
透過的圧縮。ファイルをそこに置いておくと自動的に内部で圧...
データセットを指定して行います
#code(nonumber){{
zfs set compression=lz4 tank/home/userA
}}
これで/home/userAに集まるファイルはすべて透過的圧縮の対象...
クオート設定
#code(nonumber){{
zfs set quota=1T tank/home/userA
zfs set quota=200G tank/home/userA
}}
とデータセットを作った領域に設けられます。単に「mkdir /ho...
解除方法は
#code(nonumber){{
zfs set quota=none tank/home/userA
}}
残り幾つ使えるかは「zfs list」で見れて
#code(nonumber){{
[root@zfs ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 996K 385G 96K none
tank/apps 96K 385G 96K /apps
tank/home 288K 385G 96K /home
tank/home/userA 96K 385G 96K /home/userA
tank/home/userB 96K 200G 96K /home/userB
[root@zfs ~]#
}}
と表示される。「AVAIL」に出ます
***ZFS Event Daemon(zed)による通知機能を作る [#n70de1ab]
ZFSでは使っているエンクロージャ、JBODによりますが、HDD/nv...
でもそれだけでは不十分でメール通知を有効にしてみます
使用するのはzed. zfs-zed.service です。
でもこのzedは「ローカルのメール送信コマンドを叩くのみ」な...
ここでは簡易な方法として msmtp での構築を行ってみます. っ...
#code(nonumber){{
[root@zfs ~]# dnf install epel-release
[root@zfs ~]# dnf install msmtp s-nail
(確認)
[root@zfs ~]# alternatives --list
:
mta auto /usr/bin/msmtp
mailx auto /usr/bin/mailx.s-nail
[root@zfs ~]#
}}
そして設定ファイル「/etc/smtprc」を作成します
下記はGmailを使った場合です。
Gamilのpasswordは「アプリパスワード」という物で
1.Googleアカウントに入って
2.「セキュリティーとログイン」ページに行って
3.「Googleにログインする方法」欄の「2段階認証プロセス...
4.「アプリパスワード」欄がでますので、そこで「>」をクリ...
「アプリパスワード」はその「作成」ボタンを押下した瞬間し...
#code(nonumber){{
[root@zfs ~]# vi /etc/msmtprc
defaults
auth on
tls on
tls_trust_file /etc/pki/tls/certs/ca-bundle.crt
logfile /var/log/msmtp.log
account gmail
host smtp.gmail.com
port 587
from xxxxxxxxxxxxxxxxxxxxxxx@gmail.com
user xxxxxxxxxxxxxxxxxxxxxxx@gmail.com
password aaaabbbbccccdddd
account default : gmail
}}
っでテストメールを出してみる。
#code(nonumber){{
[root@zfs ~]# echo "test mail" | mail -s "test" xxxxxxxxx...
}}
これでメールが届いたらok
そしてzedの設定を行います
#code(nonumber){{
[root@zfs ~]# vi /etc/zfs/zed.d/zed.rc
[root@zfs ~]# sed -e '/^#/d' -e '/^$/d' /etc/zfs/zed.d/ze...
ZED_EMAIL_ADDR="xxxxxxxxxxxxxxxxxxxxxxx@gmail.com"
ZED_NOTIFY_VERBOSE=1 <-...
ZED_USE_ENCLOSURE_LEDS=1
ZED_SYSLOG_SUBCLASS_EXCLUDE="history_event"
[root@zfs ~]# systemctl restart zfs-zed.service
}}
テストとしては「zpool scrub tank」とかで。
#code(nonumber){{
[root@zfs ~]# zpool scrub tank
}}
っで、メールが届くか確認します。
「ZED_NOTIFY_VERBOSE=1」ですが、「/etc/zfs/zed.d/zed.rc」...
#code(nonumber){{
# Notification verbosity.
# If set to 0, suppress notification if the pool is hea...
# If set to 1, send notification regardless of pool hea...
}}
pool自体に問題がなければ通知しない。ZED_NOTIFY_VERBOSEを...
本番は無効でいいのかなと。
***とんだHDDをLEDで場所を知らせる [#e4835211]
zedの設定ファイル「/etc/zfs/zed.d/zed.rc」には
「ZED_USE_ENCLOSURE_LEDS=1」との設定項目がある. 該当部分は
#code(nonumber){{
# Turn on/off enclosure LEDs when drives get DEGRADED/FAU...
# device mapper and multipath devices as well. This work...
# and NVMe PCI drives (assuming they're supported by Linu...
}}
と書かれているので、多分システム次第で飛んだHDDの場所が分...
Broadcom の HBA に接続していると
#code(nonumber){{
[root@zfs ~]# ls /sys/class/enclosure/1\:0\:14\:0/Slot11/...
sdn
[root@zfs ~]#
}}
とデバイス名がでます。なので、zedによるLED点灯は行けるか...
***意図的に HDD を飛ばしてみる [#z4d2cd65]
#code(nonumber){{
[root@zfs ~]# zpool status
pool: tank
state: ONLINE
scan: scrub repaired 0B in 00:00:00 with 0 errors on Fr...
config:
NAME STATE REA...
tank ONLINE ...
raidz1-0 ONLINE ...
pci-0000:09:02.0-scsi-0:0:0:1 ONLINE ...
pci-0000:09:03.0-scsi-0:0:0:2 ONLINE ...
pci-0000:09:04.0-scsi-0:0:0:3 ONLINE ...
raidz1-1 ONLINE ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 ONLINE ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
special
mirror-2 ONLINE ...
pci-0000:09:08.0-scsi-0:0:0:7 ONLINE ...
pci-0000:09:09.0-scsi-0:0:0:8 ONLINE ...
logs
mirror-3 ONLINE ...
pci-0000:09:0a.0-scsi-0:0:0:9 ONLINE ...
pci-0000:09:0b.0-scsi-0:0:0:10 ONLINE ...
cache
pci-0000:09:0c.0-scsi-0:0:0:11 ONLINE ...
errors: No known data errors
[root@zfs ~]#
}}
この状態で事象発生させてみる (proxmoxでOSDノードのHDDを選...
「pci-0000:09:06.0-scsi-0:0:0:5」の部分をDetachさせてみた
#code(nonumber){{
[root@zfs ~]# zpool status
pool: tank
state: DEGRADED
status: One or more devices have been removed.
Sufficient replicas exist for the pool to continu...
degraded state.
action: Online the device using zpool online' or replace ...
'zpool replace'.
scan: scrub repaired 0B in 00:00:00 with 0 errors on Fr...
config:
NAME STATE REA...
tank DEGRADED ...
raidz1-0 ONLINE ...
pci-0000:09:02.0-scsi-0:0:0:1 ONLINE ...
pci-0000:09:03.0-scsi-0:0:0:2 ONLINE ...
pci-0000:09:04.0-scsi-0:0:0:3 ONLINE ...
raidz1-1 DEGRADED ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 REMOVED ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
special
mirror-2 ONLINE ...
pci-0000:09:08.0-scsi-0:0:0:7 ONLINE ...
pci-0000:09:09.0-scsi-0:0:0:8 ONLINE ...
logs
mirror-3 ONLINE ...
pci-0000:09:0a.0-scsi-0:0:0:9 ONLINE ...
pci-0000:09:0b.0-scsi-0:0:0:10 ONLINE ...
cache
pci-0000:09:0c.0-scsi-0:0:0:11 ONLINE ...
errors: No known data errors
[root@zfs ~]#
}}
これは意図的に抜いても同じようになります。
実機では恐らくそのHDDに問題があって利用できなくなるとzfs...
#code(nonumber){{
[root@zfs ~]# zpool offline tank pci-0000:09:06.0-scsi-0:...
[root@zfs ~]# zpool status
:
raidz1-1 DEGRADED ...
pci-0000:09:05.0-scsi-0:0:0:4 ONLINE ...
pci-0000:09:06.0-scsi-0:0:0:5 OFFLINE ...
pci-0000:09:07.0-scsi-0:0:0:6 ONLINE ...
:
[root@zfs ~]#
}}
次に、飛んだHDDを抜いて、新しいHDDをシステムに入れます。
この際、追加するHDDがどこかのzfsで使っていたHDDなら大事故...
その際は「ZFSラベルを消す」ことが大事。
#code(nonumber){{
[root@zfs ~]# zpool labelclear -f "/dev/disk/by-path/pci...
あるいは
[root@zfs ~]# wipefs -a "/dev/disk/by-path/pci-0000:09:0...
[root@zfs ~]# sgdisk --zap-all "/dev/disk/by-path/pci-0...
}}
でラベルを消す
その上で差し替え操作を行います
#code(nonumber){{
[root@zfs ~]# zpool replace tank "pci-0000:09:06.0-scsi-0...
}}
今回は同じPATHになってますが、気にしなくてもいいみたい。...
***posix acl [#fdc03c58]
デフォではPOSIX ACLは有効になっていないです。
なので有効にします
#code(nonumber){{
[root@zfs ~]# zfs set acltype=posixacl tank/home
[root@zfs ~]# zfs get acltype
NAME PROPERTY VALUE SOURCE
tank acltype off default
tank/apps acltype off default
tank/home acltype posix local
tank/home/userA acltype posix inherited from tank/...
tank/home/userB acltype posix inherited from tank/...
[root@zfs ~]#
}}
tank/homeでaclが有効ならそれが配下にも波及されるみたい
#code(nonumber){{
[root@zfs ~]# setfacl -m user:cryosparc:rx /home/saber
[root@zfs ~]# getfacl /home/saber/
getfacl: Removing leading '/' from absolute path names
# file: home/saber/
# owner: saber
# group: saber
user::rwx
user:cryosparc:r-x
group::---
mask::r-x
other::---
[root@zfs ~]#
}}
っとなるみたい.
nfs先では?
まずは
#code(nonumber){{
[root@zfs ~]# vi /etc/exports
/home 192.168.0.0/24(rw,sync,no_subtree_check)
/apps 192.168.0.0/24(rw,sync,no_subtree_check)
[root@zfs ~]# systemctl enable nfs-server --now
}}
っでnfs-clientから
#code(nonumber){{
[root@rockylinux9 ~]# mount -t nfs zfs:/home /home
[root@rockylinux9 ~]# df -Tht nfs4
Filesystem Type Size Used Avail Use% Mounted on
zfs:/home nfs4 386G 1.0M 386G 1% /home
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# ls -l /home
total 2
drwx------. 2 cryosparc cryosparc 5 May 3 00:10 cryosparc
drwxr-x---+ 2 saber saber 5 May 3 00:09 saber
drwxr-xr-x. 2 root root 2 May 2 04:18 userA
drwxr-xr-x. 2 root root 2 May 2 04:19 userB
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# getfacl /home/saber/
getfacl: Removing leading '/' from absolute path names
# file: home/saber/
# owner: saber
# group: saber
user::rwx
group::r-x
other::---
[root@rockylinux9 ~]# umount /home
(nfs v3でmount)
[root@rockylinux9 ~]# mount -t nfs -o vers=3 zfs:/home /h...
[root@rockylinux9 ~]# ls -l /home
total 2
drwx------. 2 cryosparc cryosparc 5 May 3 00:10 cryosparc
drwxr-x---+ 2 saber saber 5 May 3 00:09 saber
drwxr-xr-x. 2 root root 2 May 2 04:18 userA
drwxr-xr-x. 2 root root 2 May 2 04:19 userB
[root@rockylinux9 ~]#
[root@rockylinux9 ~]# getfacl /home/saber/
getfacl: Removing leading '/' from absolute path names
# file: home/saber/
# owner: saber
# group: saber
user::rwx
user:cryosparc:r-x <--- ACLが効いている
group::---
mask::r-x
other::---
[root@rockylinux9 ~]#
}}
zfsに関わらず、普通にnfs versiomn3でexportすれば、getfac/...
***zfs同士のバックアップ [#gf1d5033]
ページ名:
1