1. 程式人生 > >向分散式儲存系統的遷移-使用ZFS/Gluster

向分散式儲存系統的遷移-使用ZFS/Gluster

我這用的Ubuntu 18.04系統(已經內建支援ZFS和Gluster檔案系統了),原來磁碟儲存使用的Ext4格式和LVM,現在需要遷移到ZFS/Gluster支援的分散式軟體定義儲存(SDS)和容器儲存體系(CSI),以充分利用分散式架構的儲存虛擬化、多機容錯、水平擴容、網路訪問的叢集環境下應用的需要。

方案:

  • 叢集節點既能提供儲存服務,也能執行高通量、非密集型計算任務。
  • 叢集儲存主機至少有兩個節點。
  • 每節點四核CPU,16G記憶體,512G高速SSD。
  • 每節點PCIE至少雙槽,一塊雙口萬兆網絡卡,一塊SATA擴充套件卡或SAS陣列卡。
  • 每節點至少4塊磁碟(達到400MB/s以上,磁碟越多越快;8塊盤可達到800MB/s左右)。
  • 節點的磁碟使用ZFS條帶卷以獲得最大磁碟IO速度,將SSD設為快取和log卷執行加速。
  • 多個節點儲存通過Gluster做網路映象儲存,可以靈活地按照映象(可靠性高)或者條帶(容量大、效能高)來組織儲存方案。節點越多,可靠性、效能越好。

步驟:

中間需要有多個步驟,記錄如下:

  1. 先把新的儲存系統準備好。
    • 安裝ZFS,sudo apt install zfsutils-linux 。
    • 安裝Gluster,sudo apt install glusterfs-server 。
    • 在所有節點上,建立ZFS儲存池和檔案系統。
    • 在所有節點上,互相新增為gluster peer。
    • 在任一節點上,建立gluster volume儲存卷,可選映象或條帶模式。
    • 在需要訪問的工作節點掛載gluster儲存卷,對映為本地卷,然後就可以直接訪問了。
      • 在Kubernetes上,每一個Node都需要能訪問網路儲存卷,或者掛載為本地卷、通過hostpah來使用。
  2. 把Ext4和原來磁碟陣列的資料複製到新的儲存系統。
    • 確認資料已經全部複製。
  3. 把原來的儲存系統重新格式化為ZFS/Gluster。
    • 再次確認資料已經全部複製。
  4. 把原始資料複製回原來的儲存系統。
  5. 建立軟連線,連線到原來的捲到新的儲存系統主目錄。
    • ln -s 新的目錄 原來目錄的連結名
      • 如:ln -s /zpool/data /home/supermap/data
    • 恢復原來的服務。

注意:

  • ⚠️不要出錯,否則把原始資料搞丟了,就麻煩大了
  • 建議使用萬兆(10Gbps)網路(儲存節點使用萬兆網絡卡,全萬兆交換機連線)。
    • 網路儲存傳輸頻寬,理論上:
      • 百兆連線9MB/s。
      • 千兆連線90MB/s。
      • 萬兆連線900MB/s。
      • 雙萬兆連線1600MB/s以上。
    • 推薦:雙萬兆埠網絡卡,雙路互備、鏈路聚合。
  • 需要至少雙倍於現有資料的儲存空間。
    • 新的分散式儲存啟用映象和副本,需要“資料容量X副本數量”的物理磁碟容量。

參考: