FCSAN存儲與服務器關聯映射后在服務器端如何識別操作
步驟如下:
一、首次映射fcsan存儲的Linux系統,在系統層面的操作如下:
1.檢查一下是否安裝multipath軟件。如果沒有安裝,則需要安裝一下。並設為開機自啟動。
# rpm -qa | grep device-mapper-multipath
2.設置開機自動啟動
# chkconfig multipathd on
在centos7. x中,用# systemctl enable multipathd.service設置自動啟動。
3.配置multipath軟件
重要說明:
有些機器在其內部磁盤中含有本地SCSI卡。不建議在這些設備中使用DM-Multipath。另外,盡管可以使用devnode設置將/dev/sda等磁盤設備列入黑名單,但不能確保重啟后/dev/sda仍是同一個名稱,可以使用對應設備的WWID並將其列入黑名單;特別地,當設備中還有多個需要忽略的磁盤設備時,也要將其加入黑名單中。
其他特殊情況:例如某些虛擬機環境中,不能使用章節5.3.1中的命令查詢到磁盤的WWID,此時設置時可使用明確的設備名稱,如:
blacklist {
devnode "^sda$"
}
查看設備的WWID
1) CentOS 5.X及之前版本使用如下腳本命令。
#for i in `cat /proc/partitions | awk {'print $4'} | grep sd` |
2) CentOS 6.X版本使用如下腳本命令。
#for i in `cat /proc/partitions | awk {'print $4'} | grep sd` Device: sda1 WWID: Device: sda2 WWID: Device: sda WWID: 35000cca018616204 Device: sdb WWID: 3600b3426fb82c96d983ddfc59d0000d8 Device: sdd WWID: 3600b3426fb82c96d983ddfc59d0000d8 Device: sdc WWID: 3600b3426fb82c96d983ddfc59d0000d8 Device: sde WWID: 3600b3426fb82c96d983ddfc59d0000d8 |
3) CentOS 7.X版本使用如下腳本命令。
# for i in `cat /proc/partitions | awk {'print $4'} | grep sd` do echo "Device: $i WWID: `/usr/lib/udev/scsi_id --page=0x83 --whitelisted --device=/dev/$i`" done | sort -k4 Device: sda1 WWID: 35000c500109123e2 Device: sda2 WWID: 35000c500109123e2 Device: sda3 WWID: 35000c500109123e2 Device: sda4 WWID: 35000c500109123e2 Device: sda5 WWID: 35000c500109123e2 Device: sda WWID: 35000c500109123e2 Device: sdb WWID: 3600b342f3e3143ddf652df219d0000d0 Device: sdc WWID: 3600b342f3e3143ddf652df219d0000d0 |
!注意
如果無法通過該腳本獲取設備的WWID號,請根據OS缺省的multipath.conf.defaults(可以通過# find / -name "multipath.conf*"命令搜索)文件中getuid_callout參數部分修改,如multipath.conf.defaults文件中getuid_callout參數為: scsi_id --page=0x83 --whitelisted --device=/dev/%n ,則查詢命令中對應字段需修改為:echo "Device: $i WWID: `scsi_id --page=0x83 --whitelisted --device=/dev/$i`"
確認需要映射的磁盤
Device: sda WWID: 35000cca018616204 Device: sdb WWID: 3600b3426fb82c96d983ddfc59d0000d8 Device: sdd WWID: 3600b3426fb82c96d983ddfc59d0000d8 Device: sdc WWID: 3600b3426fb82c96d983ddfc59d0000d8 Device: sde WWID: 3600b3426fb82c96d983ddfc59d0000d8 |
i說明
1.正確使用章節5.3.1中的命令查詢,並有對應的輸出結果。
2.判斷新增磁盤及黑名單磁盤(通常是本地磁盤及第三方磁盤),以上文中輸出的結果為例,35000cca018616204為本地磁盤,需要放在黑名單中;sdb、sdc、sdd及sde具有相同的WWID,為同一個多路徑設備的子設備,其WWID為3600b3426fb82c96d983ddfc59d0000d8。
4.配置多路徑配置文件
1. CentOS5.X系統中配置如下:
# vi/etc/multipath.conf blacklist { wwid 35000c5005e7b271b #devnode "^sda$" } defaults { user_friendly_names yes checker_timeout 120 polling_interval 10 } devices { device { vendor "MacroSAN" product "LU" path_grouping_policy group_by_prio path_selector "round-robin 0" path_checker tur no_path_retry 30 prio_callout "/sbin/mpath_prio_alua /dev/%n" getuid_callout "/sbin/scsi_id -g -u -s /block/%n" hardware_handler "0" failback 15 } } multipaths { multipath { wwid 36001405bedd576bd6b39dfee8d0000d8 alias mpatha } multipath { wwid 3600b3426fb82c96d983ddfc59d0000d8 alias mpathb } #如有多個多路徑設備,可以逐一添加 multipath { },注意{前存在空格。 } |
2. CentOS6.X系統中配置如下:
# vi/etc/multipath.conf blacklist { wwid 35000c5005e7b226b #devnode "^sda$" } defaults { user_friendly_names yes polling_interval 10 queue_without_daemon no flush_on_last_del yes checker_timeout 120 } devices { device { vendor "MacroSAN" product "LU" path_grouping_policy group_by_prio no_path_retry 30 prio alua getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n" path_checker tur path_selector "round-robin 0" hardware_handler "0" failback 15 } } multipaths { multipath { wwid 3600b342095668d2d9132d970ad0000dd alias mpatha } multipath { wwid 3600b3426fb82c96d983ddfc59d0000d8 alias mpathb } #如有多個多路徑設備,可以逐一添加 multipath { },注意{前存在空格。 } |
3. CentOS7.X系統中配置如下:
# vi/etc/multipath.conf blacklist { wwid 35000c5005e7abebf #devnode "^sda$" } defaults { user_friendly_names yes polling_interval 10 queue_without_daemon no flush_on_last_del yes checker_timeout 120 } devices { device { vendor "MacroSAN" product "LU" path_grouping_policy group_by_prio no_path_retry 30 prio alua path_checker tur path_selector "round-robin 0" hardware_handler "0" failback 15 } } multipaths { multipath { wwid 3600b342095668d2d9132d970ad0000d9 alias mpatha } multipath { wwid 3600b3426fb82c96d983ddfc59d0000d8 alias mpathb } #如有多個多路徑設備,可以逐一添加 multipath { },注意{前存在空格。 } |
i說明
其中:
user_friendly_names:顯示存儲設備廠商
polling_interval:路徑監測間隔時間,全局參數,對每條路徑都有效
vendor:LUN的制造商
product:產品的ID
path_grouping_policy:選擇路徑的方式
path_selector:路徑的工作方式
path_checker:檢查路徑的方式
no_path_retry:路徑丟失時,一直等待直到路徑恢復
prio:獲取路徑的優先級
getuid_callout:獲取LUN的scsi_id
hardware_handler:1表示emc的LUN
failback:路徑切換的時間(秒)
queue_without_daemon及flush_on_last_del:解決關於Linux服務器對存儲端的Lun創建PV后,設備不能成功重啟/關機,或Linux系統下強制取消FC關聯Lun后,服務器不能成功重啟/關機的問題。
!注意
群集環境中,如需使用共享LUN,可以先在其中任意一個節點完成多路徑配置,然后再開啟其他節點並完成后續設置。以此可以確保各節點中發現的多路徑設備名稱相同。
5.加載dm-multipath模塊
# modprobe dm-multipath
6.重啟多路徑服務
# /etc/init.d/multipathd restart
#linux7命令
# systemctl restart multipathd.service
7.查看多路徑狀態
問題:
如果沒有多路徑出現則需要執行:
# ls /sys/class/fc_host/ //查詢光模塊
對上述查詢到的每個host依次做如下操作
# echo "- - -" > /sys/class/scsi_host/hostX/scan
然在執行multipath -r就可以看到新映射的磁盤了。
二、第二次以以后映射fcsan存儲操作如下:
1.底層識別操作
# ls /sys/class/fc_host/ //查詢光模塊
對上述查詢到的每個host依次做如下操作
# echo "- - -" > /sys/class/scsi_host/hostX/scan
2.查看wwid
3.修改配置文件
4.重啟multipathd服務,然在執行multipath -r就可以看到新映射的磁盤了。