201101230123也是一種自由-在 openSUSE 上使用 ZFS

又是一個自由日,在這個特別的日子介紹一個特別的組合-在 openSUSE 上使用 ZFS

對我來說由於目前大部份的資料是存放在 ZFS 檔案系統上面,如果在 Linux 平台上也能存取 ZFS 的話那就是一件很完美的事。

目前幾種可能的方案及其考量為:

  1. KQ Stor ZFS port on Linux - 需要使用 64-bit 的系統、目前支援 ZFS 版本 28
  2. ZFS for Linux - 可在 32-bit 的系統上使用、目前支援 ZFS 版本 23
  3. ZFS on Linux - 需要使用 64-bit 的系統、目前只支援 ZVol

在評估完網路上的相關資訊之後決定使用 ZFS for Linux 來完成這項任務。

以下是相關的步驟;

  1. 編譯
  2. 參考在 http://zfs-fuse.net 的 “From source (compiled by you)”之編譯程序即可順利編譯。 不過必須要注意是下載 “Maintenance Snapshot” 的版本才可以順利編譯。 (關於這個部份可以參考:#52 — compile failed (gcc 4.5 prerelease)#91 — Compilation issues with 0.6.9 )

    ## 取得 root 的身份
    # sudo su -
    
    ## 安裝所需的套件
    # yast2 --install fuse-devel libattr-devel libaio-devel libacl-devel zlib-devel fuse-devel scons openssl-devel
    
    ## 下載 official-maint.tar.gz 到 /usr/local/src
    
    ## 建立工作目錄並解開原始檔
    # cd /usr/local/src
    # mkdir ZFS_for_Linux-0.6.9-maint
    # cd ZFS_for_Linux-0.6.9-maint
    # tar -zxvf ../official-maint.tar.gz
    # cd official
    
    ## 參考 INSTALL 的程序
    # cd src
    # scons
                
  3. 安裝
  4. 安裝的步驟很容易- scons install

    ## 參考 INSTALL 的程序 
    # scons install
                
  5. 啟動
  6. 透過在 /etc/rc.d/boot.local 加入以下的指令讓系統在開機時重新匯入 earth 及 moon 兩個 ZPool 並且加以掛載:(關於這個部份也可以參考 #31 — zsf /home share not ready on time while auto-login with gdm)

    # Start ZFS-FUSE
    /usr/local/sbin/zfs-fuse
    
    # Export ZPools, so we can import them later
    /usr/local/sbin/zpool export earth
    /usr/local/sbin/zpool export moon
    
    # Import ZPools with -f option
    /usr/local/sbin/zpool import -f earth
    /usr/local/sbin/zpool import -f moon
    
    # Mount all ZFS file systems
    /usr/local/sbin/zfs mount -a
                
  7. 使用
  8. 關於使用的部份則主要是 zpool 及 zfs 兩個指令。建議看一下解開的原始檔中的 STATUS 檔案了解目前有那些限制。

  9. 問題排除及避免
  10. 在使用過程中遇到了 Transport endpoint is not connected 的問題而無法正常存取 ZFS 檔案系統。參考了 #107 — zfs-fuse crashes when on accessing imported zpool (Transport endpoint is not connected) 一文在 OpenSolaris 上執行了以下兩個指令移除 earth 及 moon 兩個 ZPool 上的 ZFS ACL 之後,在 Linux 上就再也沒有遇到同樣的問題了。

    /usr/bin/chmod -R A- /earth
    /usr/bin/chmod -R A- /moon
                

    最後則是特別要注意到 Security Notification 一文中的提醒。

參考資料:

  1. kqstor.com > KQ Stor ZFS port on Linux
  2. zfs-fuse.net > ZFS for Linux
  3. zfsonlinux.org > ZFS on Linux
  4. blog.vx.sk > Tutorial: native ZFS on Ubuntu and Fedora Linux
  5. drwetter.eu > HOWTO: ZFS under Linux using FUSE
  6. en.wikipedia.org > ZFS (English)
  7. zh.wikipedia.org > ZFS (中文)
  8. blog.xuite.net > ZFSCopy - 複製 ZFS 檔案系統的殼層腳本 (Shell Script to Copy ZFS File Systems)
  9. zfs-fuse.net > #52 — compile failed (gcc 4.5 prerelease)
  10. zfs-fuse.net > #91 — Compilation issues with 0.6.9
  11. zfs-fuse.net > #31 — zsf /home share not ready on time while auto-login with gdm
  12. zfs-fuse.net > #107 — zfs-fuse crashes when on accessing imported zpool (Transport endpoint is not connected)
  13. zfs-fuse.net > Security Notification
回應
恆易
☯簡易、☯變易、☯不易
想了解星情隨筆是什麼?
請點選:版序
iPhonePCZFSiMacThink+NotebookWi-Fi3.5GLinuxopenSUSEVirtualizationMOD
    沒有新回應!
點助日誌
關鍵字
累積 | 今日
loading......
有朋自遠方來
Locations of visitors to this page