1. 程式人生 > >zfs檔案系統應用總結

zfs檔案系統應用總結

zfs檔案系統遇到的問題


最近一個專案有點收穫,記錄一下:

基礎知識點

zfs檔案系統:參考 oracle 的zfs手冊,很詳細 Oracle® Solaris管理:ZFS檔案系統
卷volume儲存池pool快照snapshot克隆clonemount掛載點iscsirsync
可以進行 key search

需求

完成的功能:讀取一個 volume 塊裝置裡面的東西,這個 volume 是通過 iscsi 對映給客戶端進行不間斷的寫操作,怎樣在不停止寫操作的前提下讀取某一時刻這個 volume 裡面的資料資訊。
notice1

:一個 block volume 在同時對映到兩個機器上時會出現 iscsi 阻塞;
notice2:一個 block volume 在對映到一個客戶端後,自身和裡面的快照均不可被進行 mount 操作;
notice3:實驗發現對這個卷做一個快照,然後對這個快照再做克隆,這個克隆可以被映射出去;
都是血的教訓,做了好久實驗得到的結論
orcale 的zfs 檔案系統手冊給出一句話。。。。。算了,不裝逼了,我忘了,好好看書去。
大概意思就是快照不可以被操作,只是一個只讀的副本。

流程

建立快照:

zfs snapshot mypool/[email protected]

快照克隆:

zfs clone mypool/[email protected] mypool/A5test-clone

建立target:

targetcli /backstores/block/ create test-clone /dev/zvol/mypool/A5test-clone false

targetcli /iscsi create iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:A5test-clone

targetcli /iscsi/iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:a5test-clone/tpg1/luns create /backstores/block/A5test-clone

targetcli /iscsi/iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:a5test-clone/tpg1/portals create 192.168.1.112 3260

targetcli /iscsi/iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:a5test-clone/tpg1/ set attribute cache_dynamic_acls=1

targetcli /iscsi/iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:a5test-clone/tpg1/ set attribute demo_mode_write_protect=0

targetcli /iscsi/iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:a5test-clone/tpg1/ set attribute generate_node_acls=1

targetcli saveconfig

建立對映:

iscsiadm -m discovery -t st -p 192.168.1.112

iscsiadm -m node -T iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:a5test-clone -p 192.168.1.112 3260 -l

獲取磁碟:

udevadm info -q path -n /dev/sdam1 | xargs udevadm info -q env -p

mount掛載:

mount -o ro /dev/sd /var/testsnap3/

rsync傳輸:

rsync -avz /var/testsnap3/ [email protected]:/var/test1

umount解除安裝:

umount /var/testsnap3

退出iscsi連線:

iscsiadm -m node -T iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:a5test-clone -p 192.168.1.112 3260 -u

刪除target:

targetcli /iscsi delete iqn.2015-05.com.leadstor:sn:l104h701311:10:cln:A5test-clone

targetcli /backstores/block/ delete test-clone /dev/zvol/mypool/A5test-clone

targetcli saveconfig

刪除克隆:

zfs destroy mypool/[email protected] mypool/A5test-clone -f

建立快照:

zfs destroy mypool/[email protected] -f

在刪除克隆的時候有問題,還在解決
:問題解決,原因已找到,使用的是開源zfs檔案系統,09版本,09之後zfs被oracle收購後,後續版本不能免費使用,因此這個當前版本zfs 檔案系統自身的漏洞,不能直接進行克隆刪除刪除,可以通過快照級聯刪除。如果嘗試刪除克隆會造成一種克隆未刪除的假象,對後續快照刪除造成影響。