Amazon-Ec2
Linux 和 Amazon EC2 上的 ZFS
我有一種情況,我需要在 Amazon EC2 中執行的 Linux 機器上動態擴展儲存空間,我想到了 ZFS。如果我沒記錯的話,ZFS 支持一種動態擴展非冗餘 JBOD 類數組的方法。
我對正在從事的項目有一些要求:
- 如果需要,我應該能夠將陣列移動到另一個 EC2 實例。
- 我應該能夠動態擴展 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
- 將磁碟分配給 VM。(在 Amazon 管理控制台中,創建 EBS 卷,記下其 ID,並將其分配給實例)
- EC2 實例應該有一些用於創建設備節點的 udev 規則。所以你應該在 /dev/sd* 中看到一個新磁碟…登錄實例並檢查 EBS 卷是否可見,例如 fdisk -l /dev/sdf, cat /proc/partitions, run blkid。
- 如果需要,創建分區表:
fdisk / sfdisk
- 初始化以供 LVM 使用:
pvcreate /dev/sdf
- 將磁碟(物理卷)添加到 LVM 卷組
vgextend myvg /dev/sdf
- 增加卷大小:
lvextend -L +1024G /dev/myvg/uservol1
- 擴展 ext3/ext4 文件系統:
resize2fs /dev/myvg/uservol1
- 檢查 (
df -h
),您應該會看到已掛載的文件系統現在有更多空間。QED。