連線到彈性 SAN 磁碟區 - Linux
本文說明如何從個別 Linux 用戶端連線到彈性存放區域網路 (SAN) 磁碟區。 如需從 Windows 用戶端連線的詳細資訊,請參閱連線到彈性 SAN 磁碟區 - Windows。
在此文章中,您會將儲存體服務端點新增至 Azure 虛擬網路的子網路,然後設定磁碟區群組以允許來自子網路的連線。 最後,您將設定用戶端環境以連線到彈性 SAN 磁碟區,並建立連線。
當將個別彈性 SAN 磁碟區連線到多個用戶端時,您必須使用叢集管理員。 如需詳細資訊,請參閱在 Azure 彈性 SAN 上使用叢集應用程式 (部分機器翻譯)。
必要條件
連線到磁碟區
設定您的用戶端環境
啟用 iSCSI 啟動器
若要從 Linux 用戶端建立 iSCSI 連線,請安裝 iSCSI 啟動器套件。 確切的命令可能會因發行版本而有所不同,您應該視需要參閱其文件。
例如,對於 Ubuntu,您會使用 sudo apt install open-iscsi
,對於 SUSE Linux Enterprise Server (SLES),會使用 sudo zypper install open-iscsi
,而對於 Red Hat Enterprise Linux (RHEL),則會使用 sudo yum install iscsi-initiator-utils
。
安裝多重路徑 I/O
若要達到更高的磁碟區 IOPS 和輸送量並達到其上限,您必須根據應用程式多執行緒功能和效能需求,從 iSCSI 啟動器建立目標磁碟區的多個工作階段。 您需要多重路徑 I/O 將多個路徑彙總成單一裝置,並根據負載平衡原則,以最佳方式將 I/O 分散到所有可用的路徑來改善效能。
針對 Linux 發行版本安裝多重路徑 I/O 套件。 安裝會根據發行版本而有所不同,您應該參閱其文件。 例如,在 Ubuntu 上,命令會是 sudo apt install multipath-tools
,針對 SLES,命令會是 sudo zypper install multipath-tools
,而針對 RHEL,命令則是 sudo yum install device-mapper-multipath
。
安裝套件之後,請檢查 /etc/multipath.conf 是否存在。 如果 /etc/multipath.conf 不存在,請建立空的檔案,並使用下列範例中的設定來進行一般設定。 例如,mpathconf --enable
會在 RHEL 上建立 /etc/multipath.conf。
您必須對 /etc/multipath.conf 進行一些修改。 您必須在下列範例中新增裝置區段,而下列範例中預設區段設定的一些預設值是普遍適用的。 如果您需要進行任何其他特定設定,例如從多重路徑拓撲中排除磁碟區,請參閱 multipath.conf 的手冊頁。
defaults {
user_friendly_names yes # To create ‘mpathn’ names for multipath devices
path_grouping_policy multibus # To place all the paths in one priority group
path_selector "round-robin 0" # To use round robin algorithm to determine path for next I/O operation
failback immediate # For immediate failback to highest priority path group with active paths
no_path_retry 1 # To disable I/O queueing after retrying once when all paths are down
}
devices {
device {
vendor "MSFT"
product "Virtual HD"
}
}
建立或修改檔案之後,請重新啟動多重路徑 I/O。 在 Ubuntu 上,命令是 sudo systemctl restart multipath-tools.service
,而在 RHEL 和 SLES 上,命令則是 sudo systemctl restart multipathd
。
將磁碟區連結至用戶端
您可以使用下列指令碼來建立連線。 若要執行,您需要下列參數:
- subscription:訂用帳戶識別碼
- g:資源群組名稱
- e:彈性 SAN 名稱
- v:磁碟區群組名稱
- n <vol1, vol2, ...>:磁碟區 1 和 2 的名稱,以及其他您可能需要的磁碟區名稱 (以逗號分隔)
- s:每個磁碟區的工作階段數目 (預設為 32 個)
從這裡複製指令碼,並將其另存為 .py 檔案,例如 connect.py。 接著,使用必要參數加以執行。 如何執行指令碼的範例如下:
./connect.py --subscription <subid> -g <rgname> -e <esanname> -v <vgname> -n <vol1, vol2> -s 32
您可以使用 sudo multipath -ll
來驗證工作階段數目
工作階段數目
您必須對每個目標磁碟區使用 32 個工作階段,以達到其 IOPS 和/或輸送量上限。