Amazon-Ec2

Linux 和 Amazon EC2 上的 ZFS

  • July 16, 2014

我有一種情況,我需要在 Amazon EC2 中執行的 Linux 機器上動態擴展儲存空間,我想到了 ZFS。如果我沒記錯的話,ZFS 支持一種動態擴展非冗餘 JBOD 類數組的方法。

我對正在從事的項目有一些要求:

  1. 如果需要,我應該能夠將陣列移動到另一個 EC2 實例。
  2. 我應該能夠動態擴展 ZFS 陣列,向 ZFS 卷添加新的“驅動器”,而無需任何停機時間。

這可能嗎?如果 ZFS 提供動態擴展陣列的能力,我應該能夠執行一個腳本,該腳本將動態創建新的 EBS 卷,將它們附加到 EC2 實例,並讓 ZFS 將它們添加到其池中,所有這些都是動態的,無需停機。

Linux 上的 ZFS 並沒有大量的追隨者,不管是什麼。ZFS 將有效地鎖定您。底層格式與救援磁碟不兼容,您會發現 ZFS 的發行版很少見。

由於我對 ZFS 的偏見,我傾向於忽略這些限制。您可能想在Google上搜尋提供基於 SmartOS/ZFS 的雲託管的服務提供商。

Linux 文件系統 ext3/ext4 以及可能的其他各種文件系統確實允許動態增長。Linux 中內置的捲管理器 LVM 還允許您將捲動態擴展到新磁碟上。除了實驗之外,這必須是目前最好的 Linux 推薦,儘管一旦 ZFS 在 Linux 上獲得大量追隨者,這種情況就會改變。

Linux + LVM + ext3 的過程是:

範例:LVM 卷組 myvg,掛載的捲名 uservol1,Linux 中的磁碟設備為 /dev/sdf

  1. 將磁碟分配給 VM。(在 Amazon 管理控制台中,創建 EBS 卷,記下其 ID,並將其分配給實例)
  2. EC2 實例應該有一些用於創建設備節點的 udev 規則。所以你應該在 /dev/sd* 中看到一個新磁碟…登錄實例並檢查 EBS 卷是否可見,例如 fdisk -l /dev/sdf, cat /proc/partitions, run blkid。
  3. 如果需要,創建分區表:fdisk / sfdisk
  4. 初始化以供 LVM 使用:pvcreate /dev/sdf
  5. 將磁碟(物理卷)添加到 LVM 卷組vgextend myvg /dev/sdf
  6. 增加卷大小:lvextend -L +1024G /dev/myvg/uservol1
  7. 擴展 ext3/ext4 文件系統:resize2fs /dev/myvg/uservol1
  8. 檢查 ( df -h),您應該會看到已掛載的文件系統現在有更多空間。

QED。

引用自:https://unix.stackexchange.com/questions/71125