iscsi與multipath


2016-10-01/21:07:24

http://www.cnblogs.com/wuchanming/p/4019660.html
http://czmmiao.iteye.com/blog/2055805

http://lookingdream.blog.51cto.com/5177800/1825286  還有些細節要仔細看

 

官網與相關標准

http://www.open-iscsi.com/

https://github.com/open-iscsi/open-iscsi

http://www.rfc-base.org/rfc-3720.html

 

iSCSI(internet SCSI)技術由IBM公司研究開發,是一個供硬件設備使用的、可以在IP協議的上層運行的SCSI指令集,這種指令集合可以實現在IP網絡上運行SCSI協議,使其能夠在諸如高速千兆以太網上進行路由選擇。iSCSI技術是一種新儲存技術,該技術是將現有SCSI接口與以太網絡(Ethernet)技術結合,使服務器可與使用IP網絡的儲存裝置互相交換資料。

iSCSI可分享的設備類型有很多,包括鏡像文件(*.img)、分區(partition)、物理硬盤、raid設備、邏輯卷等,下面我們將准備其中的幾種來測試,其他類型大家可以自行測試。

iSCSI 服務端和客戶端的通訊就是一個在網絡上封包和解包的過程,在網絡的一端,數據包被封裝成包括TCP/IP頭、iSCSI 識別包和SCSI 數據三部分內容,傳輸到網絡另一端時,這三部分內容分別被順序地解開。為了保證安全,iSCSI 有約定操作順序。在首次運行時,客戶端(initiator)設備需要登錄到服務端(target)中。任何一個接收到沒有執行登錄過程的客戶端的iSCSI PDU (iSCSI rotocol Data Units,iSCSI 協議數據單元)服務端都將生成一個協議錯誤,並且關閉連接。在關閉會話之前,服務端可能發送回一個被駁回的iSCSI PDU。

在工作時,iSCSI使SCSI數據塊由原來的SCSI總線連接擴展到internet上,這一過程有些產品通過硬件來實現,這種硬件產品被簡稱為TOE(TCP Offload Engine),隨着近年來服務器芯片技術的不斷發展,服務器處理能力日益強勁,目前更為普遍的是通過軟件來實現SCSI數據塊的封裝過程。這種軟件通常被稱為iSCSI Initiator軟件/驅動。Initiator軟件可以將以太網卡虛擬為iSCSI卡,接受和發送iSCSI數據報文,通過普通以太網卡來進行網絡連接,但是需要占用CPU資源。另外的TOE和HBA連接轉換方式都需要專門的硬件設備來完成,雖然相對昂貴但執行效率高,也可以減輕主機CPU的負載。本文客戶端采用Initiator驅動的連接方式。

 

open-iscsi包括兩個守護進程iscsid和iscsi,其中iscsid是主進程,iscsi進程則主要負責根據配置在系統啟動時進行發起端(Initiator)到服務端(target)的登錄,建立發起端與服務端的會話,使主機在啟動后即可使用通過iSCSI提供服務的存儲設備。

iscsid進程實現iSCSI協議的控制路徑以及相關管理功能。例如守護進程(指iscsid)可配置為在系統啟動時基於持久化的iSCSI數據庫內容,自動重新開始發現(discovery)目標設備。

Open-iSCSI是通過以下iSCSI數據庫文件來實現永久配置的:

    Discovery (/var/lib/iscsi/send_targets)
    在 /var/lib/iscsi/send_targets 目錄下包含iSCSI portals的配置信息,每個portal對應一個文件,文件名為“iSCSI portal IP,端口號”(例如172.29.88.61,3260)。

    Node (/var/lib/iscsi/nodes)
    在 /var/lib/iscsi/nodes 目錄下,生成一個或多個以iSCSI存儲服務器上的Target名命名的文件夾如iqn.2000-01.com.synology:themain-3rd.ittest,在該文件夾下有一個文件名為“iSCSI portal IP,編號” (例如172.29.88.62,3260,0)的配置參數文件default,該文件中是initiator登錄target時要使用的參數,這些參數的設置是從/etc/iscsi/iscsi.conf中的參數設置繼承而來的,可以通過iscsiadm對某一個參數文件進行更改(需要先注銷到target的登錄)。

iscsiadm是用來管理(更新、刪除、插入、查詢)iSCSI配置數據庫文件的命令行工具,用戶能夠用它對iSCSI nodes、sessions、connections和discovery records進行一系列的操作。

iSCSI node是一個在網絡上可用的SCSI設備標識符,在open-iscsi中利用術語node表示目標(target)上的門戶(portal)。一個target可以有多個portal,portal 由IP地址和端口構成。

MPIO可允許1個iSCSI Initiator透過多個Session連入同1個iSCSI Target設備,以便利用多網卡或iSCSI HBA啟用負載平衡與故障失效切換機制,也可稱作Multiple Sessions per Initiator。

 

 

LUN和控制器關系

如果能做到像TCP負載均衡設備一樣的話,也需要在FC網絡層增加均衡網關,通過盤陣自身均衡沒有意義,因為后端是一份LUN。
每個控制器接管不同的LUN,不用切來切去的,這是不爭的事實啊,難道還有疑問

在同一個控制器上的多鏈路做負載均衡,在不同控制器上的多鏈路做故障切換。
當4G的主機port速率或者是單端口的IOPS成為瓶頸的時候,多路徑負載均衡就有作用了。
在任何時刻,一個LUN只能由一個控制器來控制

所謂iSCSI共享存儲協議,是指一個iSCSI設備可以被多台服務器共享,而不是指一個卷可被共享。你還是要在openiler上做兩個卷,分別用iscsi initiator掛載在兩台服務器上。
而集群文件系統,就是指多台服務器共享一個卷。因為集群文件系統可以讓多台服務器共同讀寫一個卷,並且不同服務器看到該卷中的數據都是同步的。而直接掛載,就會出現你所說的現象,兩台服務器看到的數據不同步。

round-robin
n. [計] 循環;循環賽


[root@rac1 dev]# iscsiadm -m host
tcp: [15] 192.168.30.31,[<empty>],eth0 <empty>
tcp: [16] 192.168.30.31,[<empty>],eth0 <empty>


cat /sys/class/iscsi_host/host15/ipaddress  

------------------------------------------------------------------

存儲端:

storage storwize v3700

Machine Type and Model: 6099-12C
Machine Part Number:     6099L2C
Serial Number:         78B1633

添加主機,port,再mapping volume

主機端:

centos6.8

    4  fdisk -l
    6  yum install iscsi-initiator-utils
    7  cat /etc/iscsi/initiatorname.iscsi
    8  iscsiadm -m discovery -t sendtargets -p 192.168.40.101
    9  service iscsi status
   10  iscsiadm --mode node --targetname iqn.1986-03.com.ibm:2145.storage.node1 --portal 192.168.40.101:3260 --login
   11  fdisk -l
   12  service iscsi restart
   18  service iscsi status
   21  fdisk -l
   23  iscsiadm -m node

 

------------------------------------------------------

man iscsiadm

specify the mode. op must be one of discoverydb, node, fw, host iface or session.
for node and session mode.
for discovery mode.

iSCSI defines 3 discovery types: SendTargets, SLP, and iSNS.

iscsiadm supports the iSNS (isns) or SendTargets (st) discovery type. An SLP implementation is under development.
------------------------------------------------------

就如同一般外接式儲存裝置 (target 名稱) 可以具有多個磁盤一樣,我們的 target 也能夠擁有數個磁盤裝置的。 每個在同一個 target 上頭的磁盤我們可以將它定義為邏輯單位編號 (Logical Unit Number, LUN)。

 

1.一般的網卡就能當作 iSCSI Target 但是缺點就是會消耗太多的 CPU 資源,針對這樣的問題所以發展出另外兩種的 iSCSI Target 網卡.
2.一種是軟件的 iscsi + TOE (TOE:TCP/IP offload engine),它可以針對 TCP/IP 的封包直接在網絡卡 上運算所以不會因此占用系統上的 CPU 的使用率,  
3.另外一種就是硬件式的 iSCSI + TOE. 它除了具有 TOE 還可以直接針對 iSCSI 的數據做運算.基本上它的使用上就像是一般存儲設備 HBA.你可以直接在 BIOS 選項作 iSCSI 硬件開機的動作.

 

ISCSI Target 的標准命名方式為:
"Target "+ target名字 (格式如下: iqn.yyyy-mm.<reversed domain name>[:identifier] )

iqn.2001-04.com.example:storage.disk2.sys1.xyz

 

initiator名稱用來唯一標識一個iSCSI Initiator端。保存此名稱的配置文件為/etc/iscsi/initiatorname.iscsi
[root@rac2 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:f7977cdb666

 

 

target概念

portal概念

 

[root@www ~]# vi /etc/sysconfig/iptables
iptables -A INPUT -p tcp -s 192.168.100.0/24 --dport 3260 -j ACCEPT

yum install iscsi-initiator-utils
service iscsi start
cat /etc/iscsi/initiatorname.iscsi
/var/lib/iscsi/目錄下記錄着相關信息
/etc/iscsi/iscsid.conf:主要的配置文件,用來連結到 iSCSI target 的設定;
/sbin/iscsid:啟動 iSCSI initiator 的主要服務程序;
/sbin/iscsiadm:用來管理 iSCSI initiator 的主要設定程序;
/etc/init.d/iscsid:讓本機模擬成為 iSCSI initiater 的主要服務;
/etc/init.d/iscsi:在本機成為 iSCSI initiator 之后,啟動此腳本,讓我們可以登入 iSCSI target。所以 iscsid 先啟動后,才能啟動這個服務。為了防呆,所以 /etc/init.d/iscsi 已經寫了一個啟動指令, 啟動 iscsi 前尚未啟動 iscsid ,則會先呼叫 iscsid 才繼續處理 iscsi 喔!

老實說,因為 /etc/init.d/iscsi 腳本已經包含了啟動 /etc/init.d/iscsid 的步驟在里面,所以,理論上, 你只要啟動 iscsi 就好啦!
[root@clientlinux ~]# chkconfig iscsid on
[root@clientlinux ~]# chkconfig iscsi on

service iscsid [status|start]
service iscsi status 查看iscisi的信息,只有在連接成功后才輸出
這里可能遇到start始終沒有啟動成功的信息輸出,請繼續往下執行discovery,一般會啟動iscsid。

 

 

1.發現target
iscsiadm -m discovery -t st -p ISCSI_IP
iscsiadm -m discovery -t sendtargets -p 192.168.3.16

2.查看iscsi發現記錄:
iscsiadm -m node

-m node:找出目前本機上面所有偵測到的 target 信息,可能並未登入喔

3.登陸與登出target
iscsiadm -m node -T LUN_NAME -p ISCSI_IP -l

加-p或--portal與不加是有所區別的,參看target與portal的概念。一個target上有兩個portal
iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node1 -p 192.168.40.101:3260 --login

iscsiadm -m node --targetname iqn.1986-03.com.ibm:2145.storage.node1 --portal 192.168.40.101:3260 --login

iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout

僅登入某部 target ,不要重新啟動 iscsi 服務

-T target名稱

-l  --login

[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --login
Logging in to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] (multiple)
Logging in to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] (multiple)
Login to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] successful.
Login to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.
[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
Logging out of session [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260]
Logging out of session [sid: 7, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260]
Logout of [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] successful.
Logout of [sid: 7, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.


[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 -p 192.168.40.104 -l
Logging in to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] (multiple)
Login to [iface: default, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.
[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
Logging out of session [sid: 8, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260]
Logout of [sid: 8, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.104,3260] successful.
[root@rac2 ~]# 

 

iscsiadm -m node -T targetname --logout   這個時候的 target 連結還是存在的,雖然注銷你還是看的到!
iscsiadm -m node -o [delete|new|update] -T targetname
選項與參數:
--logout :就是注銷 target,但是並沒有刪除 /var/lib/iscsi/nodes/ 內的數據
-o delete:刪除后面接的那部 target 鏈接信息 (/var/lib/iscsi/nodes/*)
-o update:更新相關的信息
-o new :增加一個新的 target 信息。

[root@rac1 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node1 --logout
Logging out of session [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node1, portal: 192.168.40.101,3260]
Logout of [sid: 6, target: iqn.1986-03.com.ibm:2145.storage.node1, portal: 192.168.40.101,3260] successful.

[root@rac2 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
Logging out of session [sid: 5, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260]
Logout of [sid: 5, target: iqn.1986-03.com.ibm:2145.storage.node2, portal: 192.168.40.102,3260] successful.

[root@rac1 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node1 --logout
iscsiadm: No matching sessions found
[root@rac1 ~]# iscsiadm -m node -T iqn.1986-03.com.ibm:2145.storage.node2 --logout
iscsiadm: No matching sessions found

[root@rac1 ~]# iscsiadm -m node
192.168.40.104:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
192.168.40.102:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
192.168.40.103:3260,1 iqn.1986-03.com.ibm:2145.storage.node1
192.168.40.101:3260,1 iqn.1986-03.com.ibm:2145.storage.node1

[root@rac1 ~]# iscsiadm -m node -o delete -T iqn.1986-03.com.ibm:2145.storage.node1
[root@rac1 ~]# iscsiadm -m node -o delete -T iqn.1986-03.com.ibm:2145.storage.node2
[root@rac1 ~]# iscsiadm -m node
iscsiadm: No records found

 

 

存儲LUN擴容
http://wutaoblog.blog.51cto.com/80263/1180783

一、ISCSI連接方式
1.先將存儲上對應LUN擴容
2.上到前端服務器重新掃描ISCSI的session
iscsiadm -m node -R    掃描所有session
iscsiadm -m node -T target -R    掃描指定的target
這時可以運行fdisk -l 查看磁盤是否擴大
如果配置了多路徑,會發現ISCSI硬盤LUN對應的磁盤設備擴大了但是multipath映射的硬盤沒有增大,需要重載多路徑服務才可以。
centos      
1.service multipath reload
ubuntu      
1.service multipath-tools reload
這時用戶fdisk -l查看會發現/dev/mapper/映射磁盤名 已經擴大
3.查看df -h發現分區還沒有擴大,運行下面命令將分區擴大
resize2fs /dev/mapper/映射磁盤名
例:你在multipath中alias 的名稱是test
resize2fs /dev/mapper/test

二、FC或HBA卡scsi線直連
centos
       同樣先在存儲上擴容LUN
       在服務器上fdisk -l發現存儲的LUN沒有擴大需要
       可以運行scsi-rescan --forcerescan
       擴容分區文件系統
       resize2fs /dev/對應磁盤
       如果提示沒有scsi-rescan 命令需要安裝sg3_utils
       yum install sg3_utils

[root@rac1 ~]# iscsiadm -m node -R
Rescanning session [sid: 2, target: iqn.1986-03.com.ibm:2145.storage.node1, portal: 192.168.40.101,3260]

 

4.開機自動:
iscsiadm -m node –T LUN_NAME -p ISCSI_IP --op update -n node.startup -v automatic

5.查看存儲是否掛載上
fdisk -l

6.用parted進行分區
parted /dev/sdb
mklabel gpt     設置分區為gpt
mkpart primary 0% 100% 將空間划分為一個分區
print
quit
注:fdisk支持小於2TB的磁盤,大於2TB的磁盤需要用parted

7.格式化分區
mkfs.ext4 -T largefile /dev/sdb1
注:-T largefile對格式化大文件速度要快很多
查看磁盤的uuid
blkid /dev/sdb1
/dev/sdb1: UUID="27f0ec37-d7ab-4c93-b9e3-cd09ddd9e340" TYPE="ext4"

8.掛載硬盤
mount  -t ext4 /dev/sdb1 /data

9.開機自動掛載
先在/etc/rc.local進行登陸
vim /etc/rc.lcoal
iscsiadm -m node -T iqn.2001-05.com.equallogic:0-af1ff6-dce2985d0-95e004e6a155508d-bak-disk01 -p 192.168.3.16:3260 --login
vim /etc/fstab
UUID=27f0ec37-d7ab-4c93-b9e3-cd09ddd9e340 /data  ext4  defaults        0 0
注:default后面的一定要注意,第一個0為是否之處dump,第二個0問支持fsck,這個在啟動后會fsck /dev/sdb1,而此時沒有掛載導致啟動失敗。

 

chap認證

-------------------------------------------------------------------------------

本組下的各個設置項主要用來指定Initiator與target驗證方式。

vi /etc/iscsi/iscsid.conf
# To enable CHAP authentication set node.session.auth.authmethod
node.session.auth.authmethod = CHAP        去掉注釋
# To set a CHAP username and password for initiator
node.session.auth.username = ittest              修改為網管提供的認證username/passwordnode.session.auth.password = Storageittest

上面是在我的環境中最為簡單的一種CHAP(Challenge Handshake Authentication Protocol)認證方式,而且只驗證的節點會話initiator端。其實iSCSI驗證可以是雙向的,根據服務端的設置,可以驗證節點會話的target端(username_in),驗證發現會話的CHAP initiator,驗證發現會話的CHAP target。(節點會話node.session即登錄認證,發現會話discovery.sendtargets即查看)

 

登入需驗證碼的節點
(1)開啟認證
iscsiadm -m node -T LUN_NAME -o update --name node.session.auth.authmethod --value=CHAP
*.使用-o同--op
(2)添加用戶
iscsiadm -m node -T LUN_NAME --op update --name node.session.auth.username --value=[用戶名]
(3)添加密碼
iscsiadm –m node –T LUN_NAME –op update –name node.session.auth.password –value=[密碼]

 

 

 

[root@rac1 iscsi]# iscsiadm -m discovery -P 0
192.168.40.103:3260 via sendtargets
192.168.40.102:3260 via sendtargets
192.168.40.101:3260 via sendtargets
[root@rac1 iscsi]# iscsiadm -m discovery -P 1
SENDTARGETS:
DiscoveryAddress: 192.168.40.103,3260
DiscoveryAddress: 192.168.40.102,3260
Target: iqn.1986-03.com.ibm:2145.storage.node2
	Portal: 192.168.40.104:3260,1
		Iface Name: default
	Portal: 192.168.40.102:3260,1
		Iface Name: default
DiscoveryAddress: 192.168.40.101,3260
iSNS:
No targets found.
STATIC:
No targets found.
FIRMWARE:
No targets found.



[root@rac1 iscsi]# iscsiadm -m node -P 0
192.168.40.104:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
192.168.40.102:3260,1 iqn.1986-03.com.ibm:2145.storage.node2
[root@rac1 iscsi]# iscsiadm -m node -P 1
Target: iqn.1986-03.com.ibm:2145.storage.node2
	Portal: 192.168.40.104:3260,1
		Iface Name: default
	Portal: 192.168.40.102:3260,1
		Iface Name: default



[root@rac2 ~]# iscsiadm -m session
tcp: [3] 192.168.40.103:3260,2 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
tcp: [4] 192.168.40.101:3260,1 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
[root@rac2 ~]# 

[root@rac1 ~]# iscsiadm -m session
tcp: [7] 192.168.40.102:3260,1 iqn.1986-03.com.ibm:2145.storage.node2 (non-flash)
tcp: [8] 192.168.40.104:3260,2 iqn.1986-03.com.ibm:2145.storage.node2 (non-flash)


[root@rac2 ~]# iscsiadm -m session -P 0
tcp: [3] 192.168.40.103:3260,2 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
tcp: [4] 192.168.40.101:3260,1 iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
[root@rac2 ~]# iscsiadm -m session -P 1
Target: iqn.1986-03.com.ibm:2145.storage.node1 (non-flash)
	Current Portal: 192.168.40.103:3260,2
	Persistent Portal: 192.168.40.103:3260,2
		**********
		Interface:
		**********
		Iface Name: default
		Iface Transport: tcp
		Iface Initiatorname: iqn.1994-05.com.redhat:f7977cdb666
		Iface IPaddress: 192.168.30.32
		Iface HWaddress: <empty>
		Iface Netdev: <empty>
		SID: 3
		iSCSI Connection State: LOGGED IN
		iSCSI Session State: LOGGED_IN
		Internal iscsid Session State: NO CHANGE
	Current Portal: 192.168.40.101:3260,1
	Persistent Portal: 192.168.40.101:3260,1
		**********
		Interface:
		**********
		Iface Name: default
		Iface Transport: tcp
		Iface Initiatorname: iqn.1994-05.com.redhat:f7977cdb666
		Iface IPaddress: 192.168.30.32
		Iface HWaddress: <empty>
		Iface Netdev: <empty>
		SID: 4
		iSCSI Connection State: LOGGED IN
		iSCSI Session State: LOGGED_IN
		Internal iscsid Session State: NO CHANGE

 

 

多路徑

http://blog.csdn.net/orangelizq/article/details/12849413  存儲的一些基本概念

http://blog.csdn.net/cybertan/article/details/8293211

http://blog.csdn.net/yaoyao4959/article/details/11476201

udev解決iscsi磁盤設備名稱固定化

 

yum install device-mapper-multpath


[root@rac1 dev]# multipath -ll
mpathb (36005076300810df6f800000000000002) dm-2 IBM,2145
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=10 status=active
  |- 15:0:0:0 sdb 8:16 active ready running
  `- 16:0:0:0 sdc 8:32 active ready running



[root@rac1 ~]# cd /dev/mapper/
[root@rac1 mapper]# ll
total 0
crw-rw----. 1 root root 10, 58 9月  30 19:46 control
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol00 -> ../dm-1
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol01 -> ../dm-0
[root@rac1 mapper]# cp  /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/
[root@rac1 mapper]# multipath -ll
[root@rac1 mapper]# multipath -ll
[root@rac1 mapper]# service multipathd reload
Reloading multipathd:                                      [  OK  ]
[root@rac1 mapper]# multipath -ll
mpathb (36005076300810df6f800000000000002) dm-2 IBM,2145
size=20G features='1 queue_if_no_path' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=10 status=active
  |- 15:0:0:0 sdb 8:16 active ready running
  `- 16:0:0:0 sdc 8:32 active ready running
[root@rac1 mapper]# ll
total 0
crw-rw----. 1 root root 10, 58 9月  30 19:46 control
lrwxrwxrwx. 1 root root      7 10月  2 11:13 mpathb -> ../dm-2
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol00 -> ../dm-1
lrwxrwxrwx. 1 root root      7 10月  1 18:50 vg_rac1-LogVol01 -> ../dm-0

 

如果出現iscsi共享存儲,已經丟失。但多路徑中的磁盤還在,最好重載一下multipath服務。就會正常了

[root@rac1 ~]# fdisk -l
Disk /dev/mapper/36005076300810df6f800000000000002: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 32768 bytes / 32768 bytes
Disk identifier: 0x00000000

                                         Device Boot      Start         End      Blocks   Id  System
/dev/mapper/36005076300810df6f800000000000002p1               1        2611    20971519+  ee  GPT
Partition 1 does not start on physical sector boundary.

[root@rac1 ~]# service multipathd status
multipathd is stopped
[root@rac1 ~]# service multipathd start
Starting multipathd daemon:                                [  OK  ]
[root@rac1 ~]# fdisk -l
就正常了

 

 

 

 

安裝multipath
yum install device-mapper-multipath

lsmod |grep multipath
dm_multipath           17724  2 dm_round_robin
dm_mod                 84209  14 dm_multipath,dm_mirror,dm_log


vi /etc/multipath.conf

#####
blacklist{
devnode "^sda"
}
defaults {
user_friendly_names yes
udev_dir /dev
path_grouping_policy multibus
failback immediate
no_path_retry fail
}
#####

 



multipath -F
multipath
# multipath -F #刪除現有路徑  兩個新的路徑就會被刪除
# multipath -v2 #格式化路徑   格式化后又出現


multipathd -k  進入命令交互
multipathd> help
multipath-tools v0.4.9 (04/04, 2009)
CLI commands reference:
 list|show paths
 list|show paths format $format
 list|show paths raw format $format
 list|show status
 list|show daemon
 list|show maps|multipaths
 list|show maps|multipaths status
 list|show maps|multipaths stats
 list|show maps|multipaths format $format
 list|show maps|multipaths raw format $format
 list|show maps|multipaths topology
 list|show topology
 list|show map|multipath $map topology
 list|show config
 list|show blacklist
 list|show devices
 list|show wildcards
 add path $path
 remove|del path $path
 add map|multipath $map
 remove|del map|multipath $map
 switch|switchgroup map|multipath $map group $group
 reconfigure
 suspend map|multipath $map
 resume map|multipath $map
 resize map|multipath $map
 disablequeueing map|multipath $map
 restorequeueing map|multipath $map
 disablequeueing maps|multipaths
 restorequeueing maps|multipaths
 reinstate path $path
 fail path $path
 paths count
 forcequeueing daemon
 restorequeueing daemon
 quit|exit
 map|multipath $map getprstatus
 map|multipath $map setprstatus
 map|multipath $map unsetprstatus

多路徑設備擴容方法1:

在rac1上
yum install iscsi-initiator-utils
yum install device-mapper-multipath
service iscsid start
service iscsi start
iscsiadm -m discovery -t st -p 192.168.40.101
iscsiadm -m node -l
vi /etc/multipath.conf
service multipathd start
mulitpath -ll
parted /dev/mapper/mpathb
mkfs
pv
mount /dev/mapper/mpathb /mnt

在A節點上裝好multipath,並配置好后,分區格式化后,掛載測試好后
在B節點上直接掛載就行了,不需要分區格式化了,可以看到之前的文件,在b上刪除文件后,a上不能立即看到,a需要重新掛載一下
但是兩個是不同步的,需要集群文件系統的幫助。


存儲端的卷擴容以后
主機端重新掃描下,sd設備也擴容了
iscsiadm -m node -R
主機端多路徑也重載一下,多路徑設備也擴容了
service multipathd reload
以下是分區,文件系統的擴容,每個節點都要做一次
umount /mnt
parted /dev/mapper/mpathb
rm 1  
mkpart primary 0% 100%
quit
mount /dev/mapper/mpathbp1 /mnt
parted /dev/mapper/mpathbp1
rm 1
mkpart 0% 100%
quit
resize2fs /dev/mapper/mpathbp1
df -h
容量擴大,數據不丟失

機器重啟的問題

vi /etc/fstab,加入下面行

/dev/mapper/mpathbp1 /mnt ext4 defaults 0 0



可能出現問題如下:
[root@rac01 ~]# resize2fs /dev/mapper/mpathbp1
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/mpathbp1 is mounted on /mnt; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 5
Performing an on-line resize of /dev/mapper/mpathbp1 to 18349568 (4k) blocks.
resize2fs: Invalid argument While trying to add group #512

解決如下:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=451388

less /var/log/messages
umount /mnt
e2fsck /dev/mapper/mpathbp1
mount /dev/mapper/mpathbp1 /mnt
df -h
resize2fs /dev/mapper/mpathbp1
df -h
就正常了

 

 

多路徑設備擴容方法2:

   91  parted /dev/mapper/mpathb
  100  pvcreate /dev/mapper/mpathbp1
  101  pvcreate /dev/mapper/mpathbp2
  103  pvdisplay
  105  vgcreate lun /dev/mapper/mpathbp1
  106  vgdisplay
  113  lvcreate -n lv1 -L 9G lun
  114  lvdisplay
  115  mkfs.ext4  /dev/lun/lv1
  117  mount /dev/mapper/lun-lv1 /mnt
  122  pvdisplay
  123  vgextend lun /dev/mapper/mpathbp2
  124  vgdisplay
  130  lvextend -n /dev/lun/lv1 -L +10G
  131  df -h
  132  fdisk -l
  133  resize2fs /dev/lun/lv1
  134  df -h
  135  pvdisplay

 

fdisk -l 看磁盤大小是否正常
fdisk /dev/sda
p,n,3,t,8e,p,w
reboot
pvcreate /dev/sda3
pvdisplay
vgdisplay
vgextend VolGroup /dev/sda3
lvdisplay
lvextend -L +4GB -n /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_root
reboot
這樣就擴容完成了

 

 

[root@rac02 mnt]# multipath -ll
mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=0 status=active
| |- 10:0:0:0 sdd 8:48 failed faulty offline
| `- 9:0:0:0  sde 8:64 failed faulty running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 7:0:0:0  sdb 8:16 active ready  running
  `- 8:0:0:0  sdc 8:32 active ready  running
[root@rac02 mnt]# multipath -ll
mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=0 status=enabled
| |- 10:0:0:0 sdd 8:48 failed faulty running
| `- 9:0:0:0  sde 8:64 failed faulty running
`-+- policy='round-robin 0' prio=10 status=active
  |- 7:0:0:0  sdb 8:16 active ready  running
  `- 8:0:0:0  sdc 8:32 active ready  running

===================================================
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.17    0.00    1.26   14.41    0.00   84.16

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
dm-0              0.00         0.00         0.00          0          0
dm-1              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0
sdb              77.00         0.00     78848.00          0      78848
sdc              86.00         0.00     88064.00          0      88064
sdd               0.00         0.00         0.00          0          0
sde               0.00         0.00         0.00          0          0
dm-3            163.00         0.00    166912.00          0     166912
dm-4          19967.00         0.00    159736.00          0     159736

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.34    0.00    0.42    6.08    0.00   93.16

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
dm-0              0.00         0.00         0.00          0          0
dm-1              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0
sdb              75.00         0.00     74768.00          0      74768
sdc              72.00         0.00     73088.00          0      73088
sdd               0.00         0.00         0.00          0          0
sde               0.00         0.00         0.00          0          0
dm-3            147.00         0.00    147856.00          0     147856
dm-4             50.00         0.00       400.00          0        400


Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
dm-0              0.00         0.00         0.00          0          0
dm-1              0.00         0.00         0.00          0          0
dm-2              0.00         0.00         0.00          0          0
sdb             112.00         0.00    114688.00          0     114688
sdc             112.00         0.00    114688.00          0     114688
sdd               0.00         0.00         0.00          0          0
sde               0.00         0.00         0.00          0          0
dm-3            224.00         0.00    229376.00          0     229376
dm-4          28800.00         0.00    230400.00          0     230400


[root@rac02 mnt]# multipath -ll
mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=enabled
| |- 10:0:0:0 sdd 8:48 failed ready running
| `- 9:0:0:0  sde 8:64 failed ready running
`-+- policy='round-robin 0' prio=10 status=active
  |- 7:0:0:0  sdb 8:16 active ready running
  `- 8:0:0:0  sdc 8:32 active ready running

[root@rac02 mnt]# multipath -ll
mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=enabled
| |- 10:0:0:0 sdd 8:48 failed ready  running
| `- 9:0:0:0  sde 8:64 failed ready  running
`-+- policy='round-robin 0' prio=0 status=enabled
  |- 7:0:0:0  sdb 8:16 failed faulty offline
  `- 8:0:0:0  sdc 8:32 failed faulty offline

[root@rac02 mnt]# multipath -ll
mpathb (36005076300810df6f800000000000005) dm-3 IBM,2145
size=50G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=50 status=active
| |- 10:0:0:0 sdd 8:48 active ready running
| `- 9:0:0:0  sde 8:64 active ready running
`-+- policy='round-robin 0' prio=10 status=enabled
  |- 7:0:0:0  sdb 8:16 active ready running
  `- 8:0:0:0  sdc 8:32 active ready running

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM