linux 内核配置raid,在 Linux VM 上配置软件 RAID - Azure Virtual Machines | Microsoft Docs
在 Linux 上配置軟件 RAID
02/02/2017
本文內容
一種比較常見的情況是,在 Azure 中的 Linux 虛擬機上使用軟件 RAID 將多個附加的數據磁盤顯示為單個 RAID 設備。 通常,與僅使用單個磁盤相比,使用此方法不但可改進性能,而且還可提高吞吐量。
附加數據磁盤
配置 RAID 設備需要兩個或更多空數據磁盤。 創建 RAID 設備的主要原因是為了提高磁盤的 IO 性能。 根據 IO 需求,可以選擇附加存儲在標準存儲且一個磁盤最多具有 500 IO/ps 的磁盤,或高級存儲且一個磁盤最多具有 5000 IO/ps 的磁盤。 本文不詳細介紹如何為 Linux 虛擬機預配和附加數據磁盤。 請參閱 Microsoft Azure 文章附加磁盤,詳細了解如何在 Azure 上為 Linux 虛擬機附加空數據磁盤。
重要
請勿混合使用不同大小的磁盤,否則會導致 RAID 集的性能被限制為運行速度最慢磁盤的性能。
安裝 mdadm 實用程序
Ubuntu
sudo apt-get update
sudo apt-get install mdadm
CentOS 和 Oracle Linux
sudo yum install mdadm
SLES 和 openSUSE
zypper install mdadm
創建磁盤分區
在此示例中,我們在 /dev/sdc 上創建單個磁盤分區。 該新磁盤分區將命名為 /dev/sdc1。
啟動 fdisk ,以開始創建分區
sudo fdisk /dev/sdc
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xa34cb70c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
在提示符處按 N 鍵,以創建新 分區:
Command (m for help): n
接下來,按 P 鍵以創建主分區 :
Command action
e extended
p primary partition (1-4)
按 1 鍵,以選擇分區號 1:
Partition number (1-4): 1
選擇新分區的起始點,或者按 接受默認值,將該分區放在驅動器可用空間的開頭:
First cylinder (1-1305, default 1):
Using default value 1
選擇分區大小,如鍵入“+10G”創建一個 10 GB 的分區。 或者,按 創建跨整個驅動器的單個分區:
Last cylinder, +cylinders or +size{K,M,G} (1-1305, default 1305):
Using default value 1305
接下來,將該分區的 ID 和類型從默認的 ID“83”(Linux) 更改為 ID“fd”(Linux raid auto):
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): fd
最后,將分區表寫入驅動器并退出 fdisk:
Command (m for help): w
The partition table has been altered!
創建 RAID 陣列
以下示例將給位于三個不同數據磁盤(sdc1、sdd1、sde1)上的三個分區設置帶區(RAID 級別 0)。 運行此命令后會創建一個名為 /dev/md127 的新 RAID 設備。 另請注意,如果這些數據磁盤以前屬于另一失效的 RAID 陣列,則可能有必要將 --force 參數添加到 mdadm 命令:
sudo mdadm --create /dev/md127 --level 0 --raid-devices 3 \
/dev/sdc1 /dev/sdd1 /dev/sde1
在新 RAID 設備上創建文件系統
CentOS、Oracle Linux、SLES 12、openSUSE 和 Ubuntu
sudo mkfs -t ext4 /dev/md127
SLES 11
sudo mkfs -t ext3 /dev/md127
SLES 11 - 啟用 boot.md 并創建 mdadm.conf
sudo -i chkconfig --add boot.md
sudo echo 'DEVICE /dev/sd*[0-9]' >> /etc/mdadm.conf
備注
在 SUSE 系統中進行這些更改后,可能需要重新啟動。 在 SLES 12 中, 不 需要執行此步驟。
將新文件系統添加到 /etc/fstab
重要
錯誤地編輯 /etc/fstab 文件可能會導致系統無法引導。 如果沒有把握,請參考分發的文檔來獲取有關如何正確編輯該文件的信息。 另外,建議在編輯前備份 /etc/fstab 文件。
為新文件系統創建所需的安裝點,例如:
sudo mkdir /data
編輯 /etc/fstab 文件時,使用 UUID 引用文件系統,而非設備名稱。 使用 blkid 實用程序確定新文件系統的 UUID:
sudo /sbin/blkid
...........
/dev/md127: UUID="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" TYPE="ext4"
在文本編輯器中打開 /etc/fstab,并為新文件系統添加條目,例如:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults 0 2
或在 SLES 11 上:
/dev/disk/by-uuid/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext3 defaults 0 2
然后,保存并關閉 /etc/fstab。
測試該 /etc/fstab 條目是否正確:
sudo mount -a
如果此命令導致錯誤消息,請檢查 /etc/fstab 文件中的語法。
接下來,運行 mount 命令以確保文件系統已裝入:
mount
.................
/dev/md127 on /data type ext4 (rw)
(可選)防故障引導參數
fstab 配置
許多分發版包括 nobootwait 或 nofail 裝載參數,這些參數可以添加到 /etc/fstab 文件中。 這些參數允許裝入某特定文件系統時失敗,并且允許 Linux 系統繼續引導,即使它無法正確裝入 RAID 文件系統也無妨。 有關這些參數的詳細信息,請查閱分發文檔。
示例 (Ubuntu):
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,nobootwait 0 2
Linux 引導參數
除了以上參數,還可以使用內核參數“bootdegraded=true”啟用系統引導功能,即使發現 RAID 已損壞或降級(例如,如果意外從虛擬機移除數據驅動器)。 默認情況下,這也可能會導致系統無法啟動。
請參閱發行版文檔,了解如何正確編輯內核參數。 例如,在許多分發(CentOS、Oracle Linux、SLES 11)中,可以手動將這些參數添加到“/boot/grub/menu.lst”文件。 在 Ubuntu 中,可將此參數添加到“/etc/default/grub”的 GRUB_CMDLINE_LINUX_DEFAULT 變量。
TRIM/UNMAP 支持
某些 Linux 內核支持 TRIM/UNMAP 操作以放棄磁盤上未使用的塊。 這些操作主要適用于標準存儲,以通知 Azure 已刪除的頁不再有效可以丟棄。 如果創建了較大的文件,并將其刪除,則放棄頁可以節省成本。
備注
如果將陣列的區塊大小設置為小于默認值 (512 KB),則 RAID 可能不會發出丟棄命令。 這是因為主機上的 unmap 粒度也是 512KB。 如果通過 mdadm 的 --chunk= 參數修改了陣列的區塊大小,則內核可能會忽略 TRIM/unmap 請求。
在 Linux VM 中有兩種方法可以啟用 TRIM 支持。 與往常一樣,有關建議的方法,請參閱分發:
在 /etc/fstab 中使用 discard 裝載選項,例如:
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee /data ext4 defaults,discard 0 2
在某些情況下,discard 選項可能會影響性能。 此處,還可以從命令行手動運行 fstrim 命令,或將其添加到 crontab 以定期運行:
Ubuntu
# sudo apt-get install util-linux
# sudo fstrim /data
RHEL/CentOS
# sudo yum install util-linux
# sudo fstrim /data
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的linux 内核配置raid,在 Linux VM 上配置软件 RAID - Azure Virtual Machines | Microsoft Docs的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle从一个表insert语句,O
- 下一篇: linux脚本重命名文件,shell脚本