網管人84期已介紹過如何使用KVM與libvirt架設虛擬化叢集,其儲存方式是採用NFS。但NFS並非唯一的網路存取方案,本篇將會介紹另一種iSCSI的網路儲存方式。
本文除了講解iSCSI的網路儲存方式外,也會針對QEMU特有的qcow2儲存格式進行介紹,希望協助讀者在實作時能更快上手。首先說明何謂iSCSI。
關於iSCSI
iSCSI是在TCP/IP通訊協定下的SCSI實作,這意味著你可以透過區域網路使用iSCSI連接其他電腦的硬碟設備,並直接與設備通訊。擔任過網管的朋友或許已經認識到SCSI和SAS介面的儲存設備可提供良好的速度與穩定性。
這裡要特別提醒讀者,使用iSCSI連接時,建議多架設一組獨立的區域網路來部署,而不建議與原本的網路混雜,以避免降低存取效能。
架設iSCSI儲存設備
一般而言,可以採購一組SAN(Storage Area Network)來使用,也有一些作業系統發行版專門針對儲存用途作設計,例如Openfiler、FreeNAS等。在此將介紹如何使用Debian安裝相關套件滿足此需求。
安裝作業系統與套件
請安裝乾淨的Debian,分割硬碟時需獨立出數塊未分割的磁區,以作為將來虛擬機器使用的硬碟,在此建議用LVM來設定,因為比起MS-DOS的磁區分割模式,LVM所允許的分割區數目較多,也更具延展彈性。安裝完Debian系統之後請安裝iSCSI Target(伺服器軟體)。
安裝好作業系統之後,記得也要安裝iscsitarget和iscsitarget-dkms:
設定iSCSI Target的Logical Unit(LUN)
這裡需要設定iSCSI參數,新增一個Target以及數個LUN。需要一個Target名稱,依照RFC 3720,Target的名稱必須使用以下格式:
例如「iqn.2011-08.org.openfoundry:storage.vm1」。
還需要磁碟分割區的裝置路徑,通常會在「/dev」裡面,如果使用LVM,在/dev/[LVM名稱]裡面通常有不同的分割區。
因此請修改「/etc/iet/ietd.conf」並加入以下項目。本內容為OpenFoudry的設定,請適當修改為適合自己的環境:
在本文的規劃中,一個LUN就相當於虛擬機器所使用的一個硬碟,而在本範例內只有兩個LUN,但可以依照個人需求增加LUN數目。
設定iSCSI Target存取權限
修改「/etc/iet/initators.allow」,將原本允許所有連線的ALL ALL設定以註解掉的方式使其失效,並參考以下範例輸入(IP請輸入VM Host端的位置或是網段)。
本內容為OpenFoudry的設定,請依照個人的需求修改為適合自己機器的環境:
或
啟動iSCSI Target
修改「/etc/default/iscsitarget」,並將原本ISCSITARGET_ENABLE該行中的false改成true,否則將無法啟動iSCSI Target。最後,啟動iSCSI Target:
新增iSCSI Target位置
與84期「架設KVM/libvirt虛擬化叢集-Debian平台建置」一文中所介紹的新增NFS Storage Pool步驟大致相同,在新增的選單稍微修改即可。
|
▲圖1 新增iSCSI Target步驟1。 |