本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EBS和RAID組態
使用 Amazon 時EBS,只要作業系統支援執行個體的特定RAID組態,您就可以使用可與傳統裸機伺服器搭配使用的任何標準RAID組態。這是因為所有 RAID 都是在軟體層級完成的。
Amazon EBS磁碟區資料會複寫至可用區域中的多個伺服器,以防止任何單一元件故障造成資料遺失。此複寫使 Amazon EBS磁碟區比一般商品磁碟機更可靠十倍。如需詳細資訊,請參閱 Amazon 產品詳細資訊頁面中的 Amazon EBS可用性和耐用性
RAID 組態選項
建立 RAID 0 陣列可讓您為檔案系統達到比在單一 Amazon EBS磁碟區上佈建更高的效能層級。當 I/O RAID 效能至關重要時,請使用 0。使用 RAID 0,I/O 會分佈在條紋中的磁碟區。如果您新增磁碟區,則會直接新增輸送量 和 IOPS。不過,請記住,等量磁碟區的效能受限於集合中效能最差的磁碟區,而集合中單個磁碟區的遺失會導致陣列的完全資料遺失。
產生的 0 RAID 陣列大小是其中磁碟區大小的總和,而頻寬是其中磁碟區可用頻寬的總和。例如,兩個 500 GiB io1
磁碟區,IOPS每個 4,000 個佈建,會建立 1000 GiB RAID 0 陣列,可用頻寬為每秒 8,000 IOPS和 1,000 MiB 的輸送量。
重要
RAID Amazon 不建議使用 5 RAID 和 6,EBS因為這些RAID模式的同位寫入操作會耗用磁碟區IOPS可用的部分 。根據您RAID陣列的組態,這些RAID模式比 0 組態的可用率少 IOPS RAID 20-30%。使用這些RAID模式時,成本增加也是一個因素;在使用相同的磁碟區大小和速度時,2 磁碟區 RAID 0 陣列的效能可能會超過 4 磁碟區 6 RAID 陣列,而成本是兩倍。
RAID 1 也不建議與 Amazon 搭配使用EBS。RAID 1 需要比非RAID組態更多的 Amazon EC2到 Amazon EBS頻寬,因為資料會同時寫入多個磁碟區。此外,1 RAID 不會提供任何寫入效能改善。
建立 RAID 0 陣列
使用下列程序建立 0 RAID 陣列。
考量事項
-
執行此程序之前,您必須決定 0 RAID 陣列的大小,以及IOPS要佈建的數量。
-
為您的陣列建立具有相同大小和IOPS效能值的磁碟區。請確定您不會建立超過EC2執行個體可用頻寬的陣列。
-
您應避免從RAID磁碟區開機。如果其中一個裝置失敗,您可能無法啟動作業系統。
在 Linux 上建立 RAID 0 陣列
-
為您的陣列建立 Amazon EBS磁碟區。如需詳細資訊,請參閱建立 Amazon EBS磁碟區。
-
將 Amazon EBS磁碟區連接至您要託管陣列的執行個體。如需詳細資訊,請參閱將 Amazon EBS磁碟區連接至 Amazon EC2執行個體。
-
使用 mdadm命令從新連接的 Amazon EBS磁碟區建立邏輯RAID裝置。將陣列中的磁碟區數目替換為
number_of_volumes
和 陣列中每個磁碟區的裝置名稱 (例如/dev/xvdf
)device_name
。 您也可以替換MY_RAID
陣列的唯一名稱。注意
您可以利用 lsblk 命令列出執行個體上的裝置,來尋找裝置的名稱。
若要建立 RAID 0 陣列,請執行下列命令 (請注意分割陣列
--level=0
的選項):[ec2-user ~]$
sudo mdadm --create --verbose /dev/md0 --level=0 --name=
MY_RAID
--raid-devices=number_of_volumes
device_name1 device_name2
提示
如果發生
mdadm: command not found
錯誤,請使用下列命令來安裝 mdadm:sudo yum install mdadm
。 -
讓RAID陣列有時間初始化和同步。您可以使用下列指令來追蹤這些作業的進度:
[ec2-user ~]$
sudo cat /proc/mdstat
下列為範例輸出:
Personalities : [raid0] md0 : active raid0 xvdc[1] xvdb[0] 41910272 blocks super 1.2 512k chunks unused devices: <none>
一般而言,您可以使用下列命令顯示有關RAID陣列的詳細資訊:
[ec2-user ~]$
sudo mdadm --detail /dev/md0
下列為範例輸出:
/dev/md0: Version : 1.2 Creation Time : Wed May 19 11:12:56 2021 Raid Level : raid0 Array Size : 41910272 (39.97 GiB 42.92 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed May 19 11:12:56 2021 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 512K Consistency Policy : none Name : MY_RAID UUID : 646aa723:db31bbc7:13c43daf:d5c51e0c Events : 0 Number Major Minor RaidDevice State 0 202 16 0 active sync /dev/sdb 1 202 32 1 active sync /dev/sdc
-
在RAID陣列上建立檔案系統,並為該檔案系統提供標籤,以供稍後掛載時使用。例如,使用標籤建立 ext4 檔案系統
MY_RAID
,請執行下列命令:[ec2-user ~]$
sudo mkfs.ext4 -L
MY_RAID
/dev/md0根據您的應用程式的需求或作業系統的限制,您可以使用不同的檔案系統類型,例如 ext3 或 XFS(請參閱您的檔案系統文件,以取得對應的檔案系統建立命令)。
-
若要確保RAID陣列在開機時自動重新組裝,請建立包含RAID資訊的組態檔案:
[ec2-user ~]$
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf
注意
如果您使用 Linux 發行版本而非 Amazon Linux,您可能需要修改此命令。例如,您可能需要將檔案置於不同的位置,或者您可能需要新增
--examine
參數。如需詳細資訊,請在您的 Linux 執行個體上執行 man mdadm.conf。 -
建立新的 ramdisk 映像,以正確預先載入新RAID組態的區塊裝置模組:
[ec2-user ~]$
sudo dracut -H -f /boot/initramfs-$(uname -r).img $(uname -r)
-
為您的RAID陣列建立掛載點。
[ec2-user ~]$
sudo mkdir -p /mnt/
raid
-
最後,將RAID裝置掛載至您建立的掛載點:
[ec2-user ~]$
sudo mount LABEL=
MY_RAID
/mnt/raid
RAID 您的裝置現已準備就緒。
-
(選用) 若要在每次系統重新啟動時掛載此 Amazon EBS磁碟區,請將裝置的項目新增至
/etc/fstab
檔案。-
建立
/etc/fstab
檔案的備份,如果在編輯檔案時不小心損毀或刪除了此檔案,即可使用檔案的備份。[ec2-user ~]$
sudo cp /etc/fstab /etc/fstab.orig
-
使用您喜愛的文字編輯器 (例如
/etc/fstab
或 nano) 來開啟 vim 檔案。 -
評論任何以「
UUID=
」開頭的行,並在檔案結尾,使用下列格式為您的RAID磁碟區新增一行:device_label
mount_point
file_system_type
fs_mntops
fs_freq
fs_passno
此行中最後三個欄位是檔案系統掛載點、檔案系統的傾印頻率,以及開機時檔案系統檢查完成的順序。如果您不知道這些值應當設為多少,請使用下例中的值 (
defaults,nofail 0 2)
。如需有關/etc/fstab
項目的詳細資訊,請參閱 fstab 手冊頁 (透過在命令列中輸入 man fstab)。例如,若要將 ext4 檔案系統掛載到裝置上,並將標籤 MY_RAID 掛載點/mnt/raid
,請將下列項目新增至/etc/fstab
。注意
如果想要在不掛載此磁碟區的狀態下啟動執行個體 (例如,此磁碟區即可在不同的執行個體之間來回移動),應加入
nofail
掛載選項,以在掛載磁碟區的作業出現錯誤時,仍然讓執行個體繼續啟動。在 Debian 的衍生產品,例如 Ubuntu,也必須加入nobootwait
掛載選項。LABEL=MY_RAID /mnt/raid ext4 defaults,nofail 0 2
-
在將新的項目加入
/etc/fstab
之後,您需要檢查項目是否能夠運作。執行 sudo mount -a 命令在/etc/fstab
中掛載所有檔案系統。[ec2-user ~]$
sudo mount -a
如果先前的指令並未發生錯誤,則
/etc/fstab
檔案沒有問題,檔案系統將會在下次啟動時自動掛載。如果指令發生了任何錯誤,請檢驗錯誤,並試著修正/etc/fstab
。警告
/etc/fstab
檔案中的錯誤可能會造成系統無法開機。如果是在/etc/fstab
檔案中具有錯誤的系統,請勿將此系統關機。 -
(選用) 如果您不確定要如何修正
/etc/fstab
錯誤,可以隨時使用下列的指令,來還原備份的/etc/fstab
檔案。[ec2-user ~]$
sudo mv /etc/fstab.orig /etc/fstab
-
在 Windows 上建立 RAID 0 陣列
-
為您的陣列建立 Amazon EBS磁碟區。如需詳細資訊,請參閱建立 Amazon EBS磁碟區。
-
將 Amazon EBS磁碟區連接至您要託管陣列的執行個體。如需詳細資訊,請參閱將 Amazon EBS磁碟區連接至 Amazon EC2執行個體。
-
連接至 Windows 執行個體。如需詳細資訊,請參閱連線至您的 Windows 執行個體。
-
開啓命令提示並輸入 diskpart 命令。
diskpart
Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. On computer: WIN-BM6QPPL51CO
-
在
DISKPART
提示中,利用下列命令來列出可用的磁碟。DISKPART>
list disk
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 30 GB 0 B Disk 1 Online 8 GB 0 B Disk 2 Online 8 GB 0 B
找出您想要在陣列中使用的磁碟,並記下其磁碟編號。
-
想要在陣列中使用的每個磁碟,都必須是未包含任何現有磁碟區的線上動態磁碟。請利用下列的步驟,來將基本磁碟轉換為動態磁碟,和刪除任何現有的磁碟區。
-
使用下列命令來選取要在陣列中使用的磁碟,取代
n
您的磁碟編號。DISKPART>
select disk
n
Disk
n
is now the selected disk. -
如果所選取的磁碟列為
Offline
,請執行 online disk 命令來讓該磁碟上線。 -
如果在先前的
Dyn
命令輸出中,所選取的磁碟在 list disk 欄中未顯示星號,則需要將該磁碟轉換為動態磁碟。DISKPART>
convert dynamic
注意
如果收到磁碟具有寫入保護的錯誤訊息,您可以使用 ATTRIBUTE DISK CLEAR READONLY 命令來清除唯讀旗標,然後再次嘗試進行動態磁碟轉換。
-
使用 detail disk 命令來查看選定磁碟上的現有磁碟區。
DISKPART>
detail disk
XENSRC PVDISK SCSI Disk Device Disk ID: 2D8BF659 Type : SCSI Status : Online Path : 0 Target : 1 LUN ID : 0 Location Path : PCIROOT(0)#PCI(0300)#SCSI(P00T01L00) Current Read-only State : No Read-only : No Boot Disk : No Pagefile Disk : No Hibernation File Disk : No Crashdump Disk : No Clustered Disk : No Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 2 D NEW VOLUME FAT32 Simple 8189 MB Healthy
記下磁碟區上的任何磁碟區編號。在此範例中,磁碟區編號為 2。如果沒有磁碟區,您可以跳過下一個步驟。
-
(只有在先前的步驟中有找到磁碟區時才需要) 在前一個步驟中所找到的磁碟上,選取並刪除所有現有的磁碟區。
警告
這項動作會刪除磁碟區上的所有現有資料。
-
選取磁碟區,取代
n
您的磁碟區編號。DISKPART>
select volume
n
Volume
n
is the selected volume. -
刪除磁碟區。
DISKPART>
delete volume
DiskPart successfully deleted the volume.
-
針對想要在所選取磁碟上刪除的每個磁碟區,重複這些子步驟。
-
-
針對想要在陣列中使用的每個磁碟,重複執行步驟 6。
-
-
確認想要使用的磁碟現在已成為動態磁碟。在這種情況下,我們使用磁碟 1 和 2 作為RAID磁碟區。
DISKPART>
list disk
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 30 GB 0 B Disk 1 Online 8 GB 0 B * Disk 2 Online 8 GB 0 B *
-
建立 raid 陣列。在 Windows 上,0 RAID 磁碟區稱為分割磁碟區。
若要在磁碟 1 和磁碟 2 上建立等量磁碟區陣列,請使用下列命令 (請注意用來分割陣列的
stripe
選項):DISKPART>
create volume stripe disk=1,2
DiskPart successfully created the volume.
-
確認新的磁碟區。
DISKPART>
list volume
DISKPART> list volume Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 C NTFS Partition 29 GB Healthy System Volume 1 RAW Stripe 15 GB Healthy
請注意,
Type
欄位現在表示磁碟區 1 是stripe
磁碟區。 -
請選取磁碟區並進行格式化,以開始使用。
-
選取您要格式化的磁碟區,取代
n
您的磁碟區編號。DISKPART>
select volume
n
Volume
n
is the selected volume. -
進行磁碟區的格式化。
注意
若要進行完整格式化,請略過
quick
選項。DISKPART>
format quick recommended label="
My new volume
"100 percent completed DiskPart successfully formatted the volume.
-
指派可用的磁碟代號給磁碟區。
DISKPART>
assign letter
f
DiskPart successfully assigned the drive letter or mount point.
新的磁碟區現在已可使用。
-
在RAID陣列中建立磁碟區的快照
如果您想要使用快照備份RAID陣列中EBS磁碟區上的資料,您必須確保快照一致。因為這些磁碟區的快照是個別建立的。若要從不同步的快照還原RAID陣列中的EBS磁碟區,會降低陣列的完整性。
若要為您的RAID陣列建立一致的快照集,請使用EBS多磁碟區快照 。多磁碟區快照可讓您跨連接至EC2執行個體的多個EBS磁碟區,擷取 、 point-in-time資料協調和損毀一致性快照。您不需要停止執行個體在磁碟區之間進行協調,以確保一致性,因為快照會自動跨多個EBS磁碟區擷取。如需詳細資訊,請參閱建立 Amazon 快照 下建立多磁碟區EBS快照的步驟。