ZFS常用命令

來源:互聯網
上載者:User

1.
建立pool和ZFS檔案系統:

. 建立檔案系統,掛載在 /export/home 下
 
    # zfs create tank/home
    # zfs set mountpoint=/export/home tank/home
. 為多個使用者建立起始目錄
請注意:由於繼承而自動掛載在 /export/home/{ahrens,bonwick,billm} 下
 
    # zfs create tank/home/ahrens
    # zfs create tank/home/bonwick
    # zfs create tank/home/billm
. 向池中添加更多空間
 
    # zpool add tank mirror c2t0d0 c3t0d0
. 建立名為 “tank” 的儲存池 (type: “”,mirror,raidz,raidz2)
  
    # zpool create tank <type> c0t0d0 c1t0d0 c1t1d0

. 修改檔案系統名稱
  
    # zfs rename tank/home/ahrens tank/home/nahrens
. 刪除檔案系統
 
    # zfs destroy -Rf tank/fs

. 修改儲存池的名稱
    # zpool export tank
    # zpool import tank newpool

2. 設定屬性

自動以 NFS 方式共用該檔案系統
 
    # zfs set sharenfs=rw tank/home
 
對檔案系統中所有資料啟用壓縮
 
    # zfs set compression=on tank
 
將使用者 A的最大空間限制為 10g
 
    # zfs set quota=10g tank/home/usera
 
保證使用者 B有 20g 的預留空間
 
    # zfs set reservation=20g tank/home/userb

可通過命令查詢檔案系統的所有屬性
 
    # zfs get all tank/home
 
可通過命令查詢儲存池的所有屬性
 
    # zpool get all tank
 
大多數屬性可通過繼承方式自動化佈建 
    # zfs inherit <property> tank/home/eschrock
 
3. ZFS snapshot
檔案系統的唯讀副本
即時建立、數量不限,不佔用額外空間 - 塊僅在發生更改時才會被複製
可通過每個檔案系統根目錄下的 .zfs/snapshot 訪問
使使用者可在沒有系統管理員介入的情況下恢複檔案
對使用者A 的起始目錄執行快照捕獲
 
    # zfs snapshot tank/home/usera@tuesday
復原到前一個快照
 
    # zfs rollback tank/home/usera@monday
查看星期三的 foo.c 版本
 
    $ cat /tank/home/usera/.zfs/snapshot/wednesday/foo.c
刪除快照
 
    # zfs destroy -R tank/home/usera@monday

3.ZFS Clone
快照的可寫副本
    即時建立、數量不限
    儲存大部分為共用資料的眾多專用副本的理想方法
        軟體安裝
        工作區
        無盤客戶機

建立 OpenSolaris 原始碼的複製
 
    # zfs clone tank/solaris@monday tank/ws/lori/fix

4. ZFS send/receive
基於快照點
    完整備份:任何快照
    增量備份:任何快照增量
        速度很快 - 開銷與更改的資料成比例
 
非常高效,可執行遠程複製
產生完整備份
 
    # zfs send tank/fs@A >/backup/A    
產生增量備份
 
    # zfs send -i tank/fs@A tank/fs@B >/backup/B-A
遠程複製:每分鐘發送一次增量
 
    # zfs send -i tank/fs@11:31 tank/fs@11:32 |
      ssh host zfs receive -d /tank/fs

5. ZFS 資料移轉

獨立於主機的磁碟格式
    將伺服器從 x86 更改為 SPARC,也能運行
    自適應位元組儲存順序 (Adaptive endianness):在兩個平台上都無需額外成本
        寫入總是使用本地位元組儲存順序 (native endianness),在塊指標中設定位
        僅當主機位元組儲存順序 (endianness) != 塊位元組儲存順序時,才會針對讀取進行位元組交換
 
ZFS 負責所有處理
    無需考慮裝置路徑、設定檔、/etc/vfstab 等等
    ZFS 會在必要時進行共用/不共用、掛載/取消掛載等等

從舊伺服器上匯出池
 
    old# zpool export tank
 
物理移動磁碟並將池匯入到新伺服器中
 
    new# zpool import tank

6. 裝置管理
添加/替換新裝置 (type: “”,mirror,raidz,raidz2)
 
    # zpool add tank <type> c0t2d0 c0t3d0 c0t4d0
    # zpool replace tank c0t1d0 c0t2d0
 
添加/移除鏡像裝置
 
    # zpool attach tank c0t1d0 c0t2d0
    # zpool detach tank c0t2d0
 
將裝置停止或手工啟動 
  # zpool offline tank c0t2d0
    # zpool online tank c0t2d0
 
查看儲存池目前狀態和 I/O 狀況
 
    # zpool status -v tank
    # zpool iostat tank 1
添加熱備裝置
 
    # zpool add tank spare c0t2d0
 
指定熱備啟動/停止熱備
 
    # zpool replace tank c0t1d0 c0t2d0
    # zpool detach tank c0t2d0
 
將熱備裝置刪除
  # zpool remove tank c0t2d0
 
添加/刪除獨立的日誌裝置(效能改善)
 
    # zpool add tank log c0t3d0
    # zpool remove tank c0t3d0

7. ZFS 許可權管理
可以將zfs(1M) 的系統管理權限指派給普通使用者
    'zfs allow'
    'zfs unallow'
將許可權授予一個普通使用者
    # zfs allow marks create,snapshot tank/marks
將指定許可權回收
    # zfs unallow marks create,snapshot tank/marks
查看檔案系統當前的許可權
    # zfs allow tank/marks

8. 其它命令
顯示儲存池所有操作記錄
  
    # zpool history tank
升級儲存池到指定 SPA 版本
 
    # zpool upgrade -V <version> tank
升級檔案系統到指定 ZPL 版本
    # zfs upgrade -V <version> tank/fs
手工掛載/卸載檔案系統
    # zfs mount -a
    # zfs unmount tank/fs
    # zfs unmount -a

以上內容摘自一位工程師presentation,錄於此,以備速查。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.