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