菜鳥學Linux 第092篇筆記 iscsi, gfs2, clvm
内容總覽
iSCSI 概述
安裝服務端scsi-target-utiles
安裝用戶端 iscsi-initiator-utils
配置iscsi基于使用者密碼認證
配置的iscsi所共享的硬碟使用叢集檔案系統gfs2
叢集邏輯卷 lvm2-cluster
SCSI and iSCSI (small computer system interface)
lun (logical unit number)邏輯裝置
iSCSI
用來實作将scsi裝置基于網絡傳送到其它用戶端,并且映射到用戶端為硬體裝置,此種方式
和nfs有高大差別,它可以實作挂載共享的磁盤,分區等操作
存儲區域網絡
共享資料(基于塊)
使SCSI的傳輸距離變長
三種iscsi innitiator
iscsi hba卡 可以實力完成資料封裝,CPU使用率相對較低
iscsi toe卡 以軟體方式動作的scsi指令,CPU使用率相對适中
iscsi 驅動程式 (軟體方式實作,CPU使用率相對較高)
使用tcp 3260端口
iscsi會話
服務端
iSCSI Target: scsi-target-utils
3260
用戶端認證方式:
1. 基于IP
2. 基于使用者,chap
用戶端
ISCSI Intiator: iscsi-initiator-utils
open-iscsi
安裝服務端scsi-target-utiles (即提供iscsi硬碟的提供端)
1.安裝和啟動
# yum install scsi-target-utils
# rpm -ql scsi-target-utils
# service tgtd start
# netstat -tunlp
# chkconfig tgtd on
2.配置指令
tgtadm模式化的指令
常用模式: target, logicalunit, account
target --op
new, delete, show, bind, unbind, update
logicalunit --op
new, delete
account --op
new, delete, bind, unbind
選項簡寫
--lld, -L
--tid, -t
--lun, -l
--backing-store <path>, -b
--initiator-address <address>, -I
--targetname <targetname>, -T
targetname:
iqn.yyyy-mm.<reversed domain name>[:identifier]
iqn.2017-01.com.mysky:tstore.disk1
3.建立target
首先給伺服器新安裝一塊硬碟不需要格式化(推薦)
建立target
# tgtadm --lld iscsi --mode target --op new --targetname
iqn.2017-01.com.mysky:teststore.disk1 --tid 1 (一條指令)
# tgtadm --lld iscsi --mode target --op show
将target添加邏輯磁盤
# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1
--backing-store /dev/sdb (一條指令)
綁定target使用範圍
# tgtadm --lld iscsi --mode target --op bind --tid 1
--initiator-address 192.168.11.0/24 (一條指令)
1. 用戶端安裝iscsi-initiator-utils
# yum -y install iscsi-initiator-utils
# rpm -ql iscsi-initiator-utils
2. 配置
配置initiatorName
# echo "InitiatorName=`iscsi-iname -p iqn.2017-01.com.mysk`" >
/etc/iscsi/initiatorname.iscsi (一條指令)
# cat /etc/iscsi/initiatorname.iscsi
# service iscsi start
iscsiadm模式化指令
-m {discovery|node|session|iface}
discovery 發現某伺服器是否有target輸出,以及輸出了哪些target
node 管理跟某target的關聯關系
session 會話管理
iface 接口管理
發現某個伺服器上的target
iscsiadm -m discovery [ -hV ] [ -d debug_level ] [ -P printlevel ]
[ -I iface -t type -p ip:port [ -l ] ]
-d 0-8
-I
-t type: SendTaget(st), SLP, iSNS
-p IP:port
iscsiadm -m discovery -d 2 -t st -p 192.168.11.200
查詢完成後會保留記錄在此檔案夾下
# ls /var/lib/iscsi/send_targets/
連接配接到上邊所發現的target
iscsiadm -m node [ [ -T targetname -p ip:port -I iface ] [ -l | -u | -R | -s] ]
[ [ -o operation ] [ -n name ] [-v value ] [ -p ip:port ] ] (一條指令)
-l loin
-u logout
iscsiadm -m node -T iqn.2017-01.com.mysky:teststore.disk1 -p 192.168.11.200 -l
此時使用fdisk -l檢視磁盤,即可看到多了一塊硬碟,
可以對該硬碟進行分區,格式化,挂載等操作
(此時,共享存儲服務已經建立完成)
注意的是,如果多台用戶端同時連接配接此台iscsi設定時,如果未使用叢集檔案系統的話,多台用戶端
如果同時讀寫此台裝置的同一個檔案時,可能會出現檔案系統崩潰
iscsi-initiator-utils:
不支援discovery認證
如果例如基于使用者的認證,必須首先開放基于IP的認證
直接使用tgtadm所配置的參數無法儲存,因為是其工作在核心中,如果重新開機伺服器,或重新啟動
此服務後,tgtadm所配置的參數會被删除
如要儲存,則需要修改/etc/tgt/targets.conf檔案,此檔案在啟動時會被tgt-admin指令讀取
1. 伺服器端配置(永久生效)
# vim /etc/tgt/targets.conf
添加如下内容
<target iqn.2017-01.com.mysky:disk1>
<backing-store /dev/sdb1>
vender_id mysky
lun 3
</backing-store>
incominguser iscsiuser iscsipw
initiator-address 192.168.11.0/24
</target>
重新啟動tgtd服務使其配置生效
# service tgtd restart (注意用戶端的連接配接必須全部斷開)
2. 清除此前的iscsi連接配接(在用戶端上)
# iscsiadm -m node -T iqn.2017-01.com.mysky:disk1 -p 192.168.11.200 -u
# iscsiadm -m node -T iqn.2017-01.com.mysky:disk1 -p 192.168.11.200 -o delete
# fdisk -l
修改/etc/iscsi/iscsid.conf檔案
# vim /etc/iscsi/iscsid.conf
啟用如下三項并修改其密碼和使用者的和伺服器端保持一緻(我這裡是顯示已經修改好的)
node.session.auth.authmethod = CHAP
node.session.auth.username = iscsiuser
node.session.auth.password = iscsipw
添加完成後重新開機scsi服務
# service iscsi restart
(完成基于使用者密碼認證)
将剛剛配置的iscsi所共享的硬碟使用叢集檔案系統
可以使用叢集檔案系統鎖
可以實作叢集的檔案系統共享
可以實作一個節點上傳一個檔案,其它節點立即便可顯示該檔案
準備工作
要想使用叢集檔案系統所有iscsi用戶端必須得有叢集檔案系統元件
cman rgmanager
并已經配置好叢集節點可以互相通信fence addnode
1. 安裝gfs2-utils
# yum install gfs2-utils
先為硬碟建立分區,并使用partprobe通知核心更新
2. 格式化檔案系統為gfs2
# mkfs.gfs2 -j 2 -p lock_dlm -t clsgfs:mysqlstore /dev/sdb1
# mount /dev/sdb1 /mnt
(注意此檔案系統不會顯示lost+found檔案)
添加journal
# gfs2_jadd -j 3 /dev/sdb1
-j後所跟的數表示要再添加幾個journal
其它節點直接挂載即可
mkfs.gfs2
-j # 指定日志區域的個數,有幾個就可以被幾個節點所挂載
-J #MB 指定日志區域的大小,預設為128MB
-p {lock_dlm|lock_nolock} (當叢集檔案系統被一個節點使用時,就不需要使用分布鎖)
-t <name> 鎖表的名稱, 格式為clustername:locktablename
clustername為目前節點所在的叢集的名稱
locktablename要在目前叢集中唯一
安裝叢集邏輯卷 lvm2-cluster
與lvm類似,隻是這是一個叢集的邏輯卷
配置叢集ha cman rgmanager gfs2-utils lvm2-cluster
同步時間
修改hosts檔案
clvm 共享存儲做成lvm
借用ha機制
/etc/lvm/lvm.conf
locking_type = 3
clvm
1.安裝lvm2-cluster
在每個節點安裝lvm2-cluster
# yum -y install lvm2-cluster
或者在跳闆機執行安裝lvm2-cluster
# alias ha='for I in {1..3}; do'
# ha ssh node$I 'yum -y install lvm2-cluster'; done
2. 配置clvm
跳闆機執行
# ha ssh node$I 'lvmconf --enable-cluster'; done
# ha ssh node$I 'service clvmd start'; done
# ha ssh node$I 'chkconfig clvm on; chkconfig cman on; chkconfig rgmanager on'; done
3. 建立lvm邏輯卷
和使用本地磁盤建立邏輯卷相同,隻是所對應的磁盤為iscsi
pvcreate /dev/sdb
vgcreate clustervg /dev/sdb
lvcreate -L 10G -n clusterlv clustervg
4. 為clvm邏輯卷建立gfs2檔案系統
# mkfs.gfs2 -j 2 -p local_dlm -t tcluster:locktab1 /dev/clustervg/clusterlv
5. 挂載clvm
# mkdir /mydata
# mount -t gfs2 /dev/clustervg/clusterlv /mydata
檢視gfs檔案系統
# gfs2_tool df /mydata
# gfs2_tool gettune <mountpoint> 檢視lvm可調參數
# gfs2_tool settune <mountpoint> <parameter> <value> 修改具體的某個參數
# gfs2_tool journals <mountpoint> 檢視磁盤日志資訊
6. 擴充clvm
先擴充clvm和lvm擴充相同,最後通知擴充使用如下指令
# gfs2_grow /dev/clustervg/clusterlv 擴充clvm
(完結)
總結
centOS 6.5 已經淘汰了 ccs_tool此工具 而是使用ccs
WARNING
All ccs_tool editing capabilities are now obsoleted and unsup-
ported. Please see also ccs package and documentation for a more
complete implementation of cluster.conf CLI editor.
本文轉自Winthcloud部落格51CTO部落格,原文連結http://blog.51cto.com/winthcloud/1895001如需轉載請自行聯系原作者
Winthcloud