菜鸟学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 (一条命令)
# tgtadm --lld iscsi --mode target --op show
绑定target使用范围
# tgtadm --lld iscsi --mode target --op bind --tid 1
--initiator-address 192.168.11.0/24 (一条命令)
安装客户端 iscsi-initiator-utils
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基于用户密码认证
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.