cat /etc/os-release
html
NAME="Ubuntu" VERSION="18.04.2 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.2 LTS" VERSION_ID="18.04"
本文中使用三塊1T的ssd固態盤進行操做,磁盤信息以下:linux
Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Disk /dev/sdc: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Disk /dev/sdd: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
說明⚠️:本文着重對 ZFS 部署和基本使用進行詳細說明,關於ZFS的相關概念,請詳見本文最後的參考文檔連接~ubuntu
apt install zfsutils-linux -y
ionic
apt install nfs-kernel-server
ide
在 ZFS 中,pool池至關於 RAID 。pool池的建立和使用很是的簡單和靈活,ZFS提供了不少的參數可供咱們去選擇。測試
(1) ZFS 實現 RAID0,只需建立一個普通的池:sudo zpool create your-pool /dev/sdb /dev/sdc /dev/sdd
優化
(2) ZFS 中使用 mirror 關鍵字來實現 RAID1 功能:sudo zpool create your-pool mirror /dev/sdb /dev/sdc
3d
(3) ZFS 將 RAID5 功能實現爲 RAIDZ1:sudo zpool create your-pool raidz1 /dev/sdb /dev/sdc /dev/sdd
code
(4) ZFS 將 RAID6 功能實現爲 RAIDZ2:sudo zpool create your-pool raidz2 /dev/sdb /dev/sdc /dev/sdd /dev/sde
server
sudo zpool create your-pool mirror /dev/sdc /dev/sdd mirror /dev/sde /dev/sdf
說明⚠️:
(1)本文着重講解 ZFS 部署和基本使用,關於 RAID 相關概念和知識點,請詳見本文最後的參考文檔連接~
(2)使用 RAID1,磁盤的使用率只用50%;
(3)使用 RAID5 要求磁盤至少是 3 塊;
(4)RAID6 與 RAID5 幾乎徹底相同,但它至少須要四塊盤;
主要步驟以下:
(1)查看裸盤 ID 號:ll /dev/disk/by-id/
,詳細信息以下示例:
wwn-0x5002498e20d23d09 -> ../../sdb wwn-0x5002498e29d76d78 -> ../../sdc wwn-0x5002498e27d45d91 -> ../../sdd
(2)建立 RAIDZ1 類的pool池
sudo zpool create -f data_ssd raidz wwn-0x5002498e20d23d09 wwn-0x5002498e29d76d78 wwn-0x5002498e27d45d91
說明⚠️:咱們能夠經過df -h
命令查看到 data_pool 池已經建立並掛載,截取關鍵信息以下:
data_ssd 1.8T 128K 1.8T 1% /data_ssd
有幾點信息須要注意下:
原裸盤數量是3塊,總共大小爲3T,磁盤的可以使用空間爲2T左右。這是由於咱們採用的是 RAIDZ1 (至關於RAID5);
(3)查看 pool 池狀態
sudo zpool status
,詳細信息以下:
pool: data_ssd state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM data_ssd ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 wwn-0x5002498e20d23d09 ONLINE 0 0 0 wwn-0x5002498e29d76d78 ONLINE 0 0 0 wwn-0x5002498e27d45d91 ONLINE 0 0 0 errors: No known data errors
(4)啓用 pool 池壓縮功能
zfs set compression=on data_ssd
(5)啓用 pool 池共享功能
zfs set sharenfs=on data_ssd
啓用共享功能後,ZFS 文件系統能夠像 NFS 和SMB 那樣共享給遠程主機使用~
(6)查看存儲池的屬性
sudo zfs get all data_ssd
,簡單列出幾行以供參考:
NAME PROPERTY VALUE SOURCE data_ssd type filesystem - data_ssd creation Thu Aug 15 7:07 2019 - data_ssd used 21.5G - data_ssd available 1.73T - data_ssd referenced 30.6K - data_ssd compre***atio 1.00x - data_ssd mounted yes - data_ssd quota none default data_ssd reservation none default data_ssd recordsize 128K default data_ssd mountpoint /data_ssd default data_ssd sharenfs on local data_ssd checksum on default data_ssd compression on local
說明⚠️:咱們能夠看到compre***atio
和sharenfs
均是可用狀態~
(7)建立 ZFS 文件系統
zfs create data_ssd/test
說明⚠️:掛載路徑 /data_ssd/test 無需提早建立
(8)查看 ZFS 文件系統信息
zfs get all data_ssd/test
(9)關閉 ZFS 文件系統壓縮功能
zfs set compression=off data_ssd/test
(10)查看 ZFS 池和文件系統空間使用信息
zfs list
或zfs list data_ssd/test
(11)刪除 ZFS 文件系統
zfs destroy data_ssd/test
(12)刪除 ZFS 池
zpool destroy data_ssd
查看系統上某塊盤的SN碼,如 sdc 這塊盤:hdparm -i /dev/sdc
time dd if=/dev/zero bs=1024000 count=100000 of=100GB.file
<== 詳見參考文檔連接
ZFS功能很是的強大,支持和應用的場景也很豐富,上面操做並不徹底,後面再慢慢豐富和優化。若有不對的地方,請各位大佬指正,謝謝~
另參考文檔若有侵權,請聯繫我,立刪!感謝開源,擁抱開源~