Linux環境iSCSI儲存及多路徑功能配置

huangdazhu發表於2017-03-13

一.         概述

工作中遇到大儲存,多分割槽掛載linux出現多路徑,根據此文配置多路徑,介紹在Linux OS環境下iSCSI儲存裝置連線安裝配置使用方法和步驟,特別是Linux作業系統提供的Mutipath多路徑功能作為Linux平臺下多路徑主要可選方案之一,在本文中有重點介紹和講述。

二.         安裝配置步驟和方法

2.1客戶端安裝iSCSI

1)伺服器安裝iscsi initiator包。安裝包從OS安裝光碟中找到。是否安裝成功將可以透過以下命令列確認

[root@localhost ~]# rpm -qa|grep iscsi

iscsi-initiator-utils-6.2.0.872-10.el5

2)在/etc/iscsi/目錄下/etc/iscsi/initiatorname.iscsi 

檢視此檔案可發現主機端的iqn號碼。在磁陣管理軟體中新增HOST時需用到。

2.2劃分磁碟陣列磁碟空間

基於磁碟陣列裝置手冊在磁碟陣列上做好RAID配置後,併成功將LUN對映到伺服器,需要根據應用需要對磁碟空間進行合理規劃使用.

磁碟陣列配置步驟方法不同裝置會存在差異,需要依據相應裝置手冊配置使用。

2.3啟動iSCSI裝置

1)在伺服器端,啟動ISCSI服務:

[root@localhost ~]# service iscsi start

2)查詢ISCSI裝置(HP storageworks  P2000G3targetiqn號碼:(必須)

[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.100.102

192.168.100.102:3260,1 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

3)登陸到iSCSI儲存裝置

[root@localhost ~]# iscsiadm -m node -T iqn.1986-03.com.hp:storage.p2000g3.114513bbf6 –p

192.168.100.102:3260 -l

其中iqn號碼為上面查詢得到的號碼,ipiscsi儲存中iscsi口對外對映的地址。

4)檢視磁碟:

[root@localhost ~]# fdisk -l

Disk /dev/cciss/c0d0: 146.7 GB, 146778685440 bytes

255 heads, 32 sectors/track, 35132 cylinders

Units = cylinders of 8160 * 512 = 4177920 bytes

Disk /dev/sda: 10999.9 GB, 10999999954944 bytes

255 heads, 63 sectors/track, 1337340 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sda doesn't contain a valid partition table

Disk /dev/sdb: 10999.9 GB, 10999999954944 bytes

255 heads, 63 sectors/track, 1337340 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

5)同樣的方法新增另外一個ISCSI路徑的target 

(說明:一個iSCSI磁陣的一個ISCSI埠有一個iqn號和一個ip地址)

新增成功後fdisk 應該可以看到兩個磁碟機代號。他們的容量都一樣。這兩個磁碟機代號對應的是同一個磁碟陣列下的同一個LUN 

6)對映完成之後使用下面命令檢視對映結果:

[root@localhost ~]# iscsiadm -m node

192.168.100.102:3260,1 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

192.168.100.101:3260,2 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

2.4安裝DM-multipath 軟體包

由於需要實現儲存裝置的多路徑訪問及故障切換,故需要執行multipath服務,這個在os中已經安裝好了。如沒有執行下面的命令。Multipath服務原理為iSCSI磁陣中的一個真實的virtual disk透過與2個冗餘陣列控制器連線的埠對外提供對映,故伺服器上可以看到兩個物理磁碟,但此磁碟對應一個真實的一個真實的virtual disk,故這兩條路徑間可以實現故障切換和負載均衡。

rpm –ivh device-mapper-1.02.13-6.9.i686.rpm

rpm –ivh multipath-tools-0.4.7-34.18.i686.rpm

安裝完成後,使用命令modprobe dm_multipath來載入相應的模組,可以使用以下命令來檢查安裝是否正常:

lsmod |grep dm_multipath

2.5 配置檔案的修改和建立

1/etc/multipath.conf 是多路徑軟體的配置檔案,其中大部分配置是註釋掉的,可以將他儲存為備用,然後新建一個multipath.conf 檔案,編輯新的配置檔案,實際有用的就是下面這些引數:其餘引數都可以註釋掉:

defaults {

user_friendly_names yes

udev_dir /dev

path_grouping_policy multibus

failback immediate

no_path_retry fail}儲存退出

(2)啟動服務:

Service multipathd restart啟動成功後,我們會在dev目錄下看到下面的目錄:

/dev/mapper/mpathn,

/dev/mpath/mpathn,

/dev/dm-n.

說明:

/dev/mapper/mpathn 是軟體虛擬出來的多路徑裝置,這個可以被我們用來掛載使用。

/dev/mpath/mpathn 這個是udev裝置管理器建立的,不能用來掛載。

/dev/dm-n 這個是軟體自身使用的,不能被軟體以外使用。不可掛載。

(3)  multipath ll 命令檢視到兩條活躍路徑,他們之間互為A/A 關係。斷掉其中一根線路,那麼系統自動切換到另外一條。

[root@localhost ~]# multipath -ll

mpath2 (3600508b4000a5bfd0000b00000200000) dm-2 HP,P2000G3

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=2][active]

\_ 1:0:0:2 sdd 8:48 [active][ready]

\_ 2:0:0:2 sdf 8:80 [active][ready]

mpath1 (3600508b4000a5bfd0000b000001a0000) dm-1 HP,P2000G3

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=2][active]

\_ 1:0:0:1 sdb 8:16 [active][ready]

\_ 2:0:0:1 sdc 8:32 [active][ready]

mpath3 (3600508b4000a5bfd0000b00000350000) dm-3 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=2][active]

\_ 1:0:0:3 sde 8:64 [active][ready]

\_ 2:0:0:3 sdg 8:96 [active][ready]

說明上面藍色字型是磁陣生產廠商和產品型號標識,不同廠商和不同型號產品相關資訊顯示將會不同。

4)在多路徑裝置建立後,我們就可以像使用實際的物理裝置樣使用多路徑裝置了。前提是需要透過下面的命令將其標記為物理卷。pvcreate /dev/mapper/mpath1

5)然後對磁碟進行分割槽和格式化

fdisk /dev/mapper/mpath1

分割槽之後,會在dev/mapper/目錄下建立新的塊裝置,

/dev/mapper/mpath1p1 這個表示mpath1裝置下面的分割槽1.

如果沒有看到或者不匹配,需要使用multipath 命令清除多路徑裝置的快取資訊後,再用命令multipath v3重新進行載入。

分割槽之後使用fdisk 命令檢視磁碟會看到dm-1 磁碟下面已經有分割槽的資訊了。

Disk /dev/dm-1: 10982.1 GB, 10982198870016 bytes

255 heads, 63 sectors/track, 1335176 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

mkfs.ext3 /dev/mapper/mpath0p1

6)最後將磁碟mount掛載,就可以正常使用了。

7)將multipathd服務設定成開機自啟動

chkconfig multipathd on

8)其他注意事項:

①刪除失效的iscsi 連線:如果因為錯誤配置等原因建立了iscsi 對應,系統不會自動刪除,需手動刪除。例如:

[root@localhost ~]# iscsiadm -m node

192.168.1.252:3260,3 iqn.1986-03.com.hp:storage.p2000g3.114513bbf6

我們看到上面有一個iscsi對應,但實際中這個對應已經失效,系統不會自動刪除。

②刪除命名:

iscsiadm -m node -o delete –T iqn.1986-03.com.hp:storage.p2000g3 -p 192.168.1.252:3260

③如果其中一條鏈路出現故障,那麼在日誌裡面我們可以看到如下類似的資訊:

[root@localhost ~]# tail /var/log/messages

Dec 12 14:03:15 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:15 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:15 bhnfs1 multipathd: sdf: readsector0 checker reports path is down

Dec 12 14:03:15 bhnfs1 multipathd: sdg: readsector0 checker reports path is down

Dec 12 14:03:20 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:20 bhnfs1 multipathd: sdc: readsector0 checker reports path is down

Dec 12 14:03:20 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:20 bhnfs1 multipathd: sdf: readsector0 checker reports path is down

Dec 12 14:03:20 bhnfs1 kernel: iscsi: cmd 0x28 is not queued (8)

Dec 12 14:03:20 bhnfs1 multipathd: sdg: readsector0 checker reports path is down

檢視多鏈路狀態:

[root@localhost etc]# multipath -ll

sdc: checker msg is "readsector0 checker reports path is down"

sdf: checker msg is "readsector0 checker reports path is down"

sdg: checker msg is "readsector0 checker reports path is down"

mpath2 (3600508b4000a5bfd0000b00000200000) dm-2 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=1][active]

\_ 1:0:0:2 sdd 8:48 [active][ready]

\_ 2:0:0:2 sdf 8:80 [failed][faulty]

mpath1 (3600508b4000a5bfd0000b000001a0000) dm-1 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=1][active]

\_ 1:0:0:1 sdb 8:16 [active][ready]

\_ 2:0:0:1 sdc 8:32 [failed][faulty]

mpath3 (3600508b4000a5bfd0000b00000350000) dm-3 HP,HSV300

[size=2.0T][features=0][hwhandler=0]

\_ round-robin 0 [prio=1][active]

\_ 1:0:0:3 sde 8:64 [active][ready]

\_ 2:0:0:3 sdg 8:96 [failed][faulty]

三.         總結

    隨著iSCSI儲存技術的發展和普及,iSCSI儲存產品在電信行業應用越來越多,掌握iSCSI儲存在不同應用環境下的配置和使用非常必要,而Linux提供的多路徑方案作為一種開放的應用解決方案也為使用者應用方案配套提供了更靈活的選擇。

機器重啟後LVMLUN識別問題:

1、修改initrd初始化模組佇列,新增FC驅動模組:

[root@localhost ~]# grep MOD /etc/sysconfig/kernel

INITRD_MODULES="sata_nv mptsas reiserfs qla2xxx qla2400"

MODULES_LOADED_ON_BOOT=""

2、重新制作initrd

# cd /boot/

[root@localhost boot]# cp initrd-2.6.5-7.244-smp initrd-2.6.5-7.244-smp-bak20090416

[root@localhost boot]#  mkinitrd -k vmlinuz-2.6.5-7.244-smp -i initrd-2.6.5-7.244-smp

3、重啟系統自動識別LVMLUN裝置:

[root@localhost boot]#  reboot

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-2135234/,如需轉載,請註明出處,否則將追究法律責任。

相關文章