DB2-GPFS -Linux iscsi定义共享存储
前言
在GPFS相关安装及配置步骤,受限条件没法重新配置并记录。因要SAN存储或本地存储,条件有限没有外置存储或多余磁盘。以下使用 linux 系统下的 iscsi 共享磁盘存储系统,创建虚拟共享san磁盘,并能主机之间识别。
target和initiator是SAN的两个核心概念。target是一个或多个存储设备(LUN)的集合,由服务器端创建;而initiator则是客户端使用的工具,用来连接服务器端创建的target如下图
数据流量对应OSI网络层级
iscsi实现方式,软件方式、硬件方式initiator(TOE卡和HBA卡)
使用场景,包括本地网及外部网络
Target架构,以及支持协议
非共享虚拟磁盘的配置
场景GPFS FPO模式,虚拟化磁盘仅本机识别及操作,不需要其他主机能够识别,所以下面步骤中,所有虚拟磁带都仅本地识别及操作。
准备
准备hosts
所有机器上准备本地域名解析,如下步骤样例
vi /etc/hosts
192.168.1.225 gpfs1 gpfs1.com
192.168.1.226 gpfs2 gpfs2.com
准备ssh互信
所有机器上执行互信,如下步骤样例
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub gpfs1
ssh-copy-id -i ~/.ssh/id_rsa.pub gpfs2
准备ntp
确保所有机器时钟同步,最好配置ntp
target配置
安装rpm
所有机器上准备iscsi,如果没有找到,请配置EPEL REPO
yum install -y scsi-target-utils
准备虚拟磁盘img
确保所有机器都有
mkdir -p /iscsi_disks
dd if=/dev/zero of=/iscsi_disks/disk01.img count=0 bs=1 seek=1G
dd if=/dev/zero of=/iscsi_disks/disk02.img count=0 bs=1 seek=2G
dd if=/dev/zero of=/iscsi_disks/disk03.img count=0 bs=1 seek=3G
配置target
确保所有机器都有,注意target iqn.后面跟主机别名,如这里gpfs1
vi /etc/tgt/targets.conf
#default-driver iscsi
<target iqn.gpfs1:server.target1>
<backing-store /iscsi_disks/disk01.img>
lun 3
</backing-store>
<backing-store /iscsi_disks/disk02.img>
lun 4
</backing-store>
<backing-store /iscsi_disks/disk03.img>
lun 5
</backing-store>
write-cache off
initiator-address 192.168.1.225
</target>
iqn以及initiator-address需要更换为对应机器,比如另一台机器就是
vi /etc/tgt/targets.conf
#default-driver iscsi
<target iqn.gpfs2:server.target1>
<backing-store /iscsi_disks/disk01.img>
lun 3
</backing-store>
<backing-store /iscsi_disks/disk02.img>
lun 4
</backing-store>
<backing-store /iscsi_disks/disk03.img>
lun 5
</backing-store>
write-cache off
initiator-address 192.168.1.226
</target>
检查tgtd服务开启
chkconfig tgtd on
手动启动tgtd服务
systemctl start tgtd
检查相关监听端口
netstat -tnlp | grep 3260
检查tgt加载
tgt-admin --show
initiator配置
安装rpm
所有机器上准备initiator
yum install -y iscsi-initiator-utils
准备
确保所有机器都有
chkconfig iscsid on
chkconfig iscsi on
手动启动iscsi服务
systemctl start iscsi
识别虚拟存储,注意地址是本机地址。
iscsiadm -m discovery -t sendtargets -p 192.168.1.225
输出结果
192.168.1.225:3260,1 iqn.gpfs1:server.target1
如果是192.168.1.226,命令如下
iscsiadm -m discovery -t sendtargets -p 192.168.1.226
输出结果
192.168.1.226:3260,1 iqn.gpfs2:server.target1
可以查看磁盘文件
ll -R /var/lib/iscsi/nodes/
检查连接
iscsiadm -m node -T iqn.gpfs1:server.target1 --login
如果是gpfs2就是
iscsiadm -m node -T iqn.gpfs2:server.target1 --login
检查操作系统磁盘设备
fdisk -l
如果没有出现,重启下iscsi服务
service iscsi restart
可以看到多出虚拟磁盘sda、sdb、sdc
Disk /dev/sda: 1073 MB, 1073741824 bytes
34 heads, 61 sectors/track, 1011 cylinders
Units = cylinders of 2074 * 512 = 1061888 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb: 2147 MB, 2147483648 bytes
67 heads, 62 sectors/track, 1009 cylinders
Units = cylinders of 4154 * 512 = 2126848 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdc: 3221 MB, 3221225472 bytes
100 heads, 62 sectors/track, 1014 cylinders
Units = cylinders of 6200 * 512 = 3174400 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
或者执行lsblk,多出虚拟磁盘sda、sdb、sdc
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 40G 0 disk
├─vda1 252:1 0 4G 0 part [SWAP]
└─vda2 252:2 0 36G 0 part /
sda 8:0 0 1G 0 disk
sdb 8:16 0 2G 0 disk
sdc 8:32 0 3G 0 disk
在可以查看连接客户端
tgt-admin -s
Target 1: iqn.ctyzk1:server.target1
I_T nexus information:
I_T nexus: 2
Initiator: iqn.1994-05.com.redhat:c5cc166f146a alias: linux-06177901
Connection: 0
IP Address: 192.168.1.226
I_T nexus: 3
Initiator: iqn.1994-05.com.redhat:9c3e22eb214c alias: linux-06177922
Connection: 0
IP Address: 192.168.1.225
或者使用iscsiadm -m session查看会话
iscsiadm -m session
tcp: [4] 192.168.1.225:3260,1 iqn.gpfs1:server.target1 (non-flash)
tcp: [4] 192.168.1.226:3260,1 iqn.gpfs2:server.target1 (non-flash)
共享盘使用
如果是多节点共享盘,按照如下操作
首先节点1配置targets.conf
vi /etc/tgt/targets.conf
#default-driver iscsi
<target iqn.gpfs1:server.target1>
<backing-store /iscsi_disks/disk01.img>
lun 3
</backing-store>
<backing-store /iscsi_disks/disk02.img>
lun 4
</backing-store>
<backing-store /iscsi_disks/disk03.img>
lun 5
</backing-store>
write-cache off
initiator-address 192.168.1.225
initiator-address 192.168.1.226
</target>
其次节点1上启动tgtd服务并检查tgt加载
systemctl start tgtd
tgt-admin --show
其次节点1上执行,格式化挂载并写入测试数据
systemctl start iscsi
iscsiadm -m discovery -t sendtargets -p 192.168.1.225
iscsiadm -m node -T iqn.gpfs1:server.target1 --login
lsblk
fdisk -l
parted /dev/sdc mklabel gpt
parted /dev/sdc mkpart /dev/sdc1 xfs 1 3000
mkfs.xfs /dev/sdc1
parted /dev/sdc print
mount /dev/sdc1 /iscsimnt1/
echo "node1" > /iscsimnt1/node1.txt
节点2上执行,识别并挂载并写入测试数据
systemctl start iscsi
iscsiadm -m discovery -t sendtargets -p 192.168.1.225
iscsiadm -m node -T iqn.gpfs1:server.target1 --login
lsblk
fdisk -l
mount /dev/sdc1 /iscsimnt1
ls /iscsimnt1
echo "node2" > /iscsimnt1/node2.txt
注意,多个节点不能往同一块盘同时写入数据,避免数据同步问题。可以手动卸载文件系统挂载点umount,或者使用高可用控制软件(集群文件系统)控制,或者分布式文件系统
initiator端卸载或更新
注销会话,断开iscsi disk连接
iscsiadm -m node -T iqn.gpfs1:server.target1 -p 192.168.1.225 -u
删除iscsi disk连接
iscsiadm -m node -T iqn.gpfs1:server.target1 -p 192.168.1.225 -o delete
可以检查iscsi磁盘已经不存在
lsblk
停止服务
systemctl stop iscsid
systemctl disable iscsid
windows配置initiator
执行iscsicpl.exe,打开iscsi initator配置界面,以下是一个案例
输入target的IP地址。
打开window计算机管理器->磁盘管理器中,可以查看到iscsi映射盘,格式化磁盘后可以通过盘符访问
使用命令配置
iscsicli.exe ListInitiators
iscsicli.exe QAddTargetPortal 192.168.1.225
iscsicli.exe ListTargets
iscsicli.exe logintarget "iqn.ctyzk1:server.target1" T 192.168.1.225 3260 "ROOT\ISCSIPRT\0000_0" 192.168.1.3 * * * * * * * * * * * 0
iscsicli.exe ReportTargetMappings
iscsicli.exe PersistentLoginTarget "iqn.ctyzk1:server.target1" T 192.168.1.225 3260 "ROOT\ISCSIPRT\0000_0" 192.168.1.3 * * * * * * * * * * * 0
iscsicli.exe ListPersistentTargets
iscsicli.exe sessionlist
iscsicli LogoutTarget $sessionid
其中iscsicli.exe ReportTargetMappings可以查看映射盘
iscsicli.exe ReportTargetMappings
Microsoft iSCSI Initiator Version 10.0 Build 19044
Total of 1 mappings returned
Session Id : ffff8d8eed7f6010-400001370000001d
Target Name : iqn.ctyzk1:server.target1
Initiator : ROOT\ISCSIPRT\0000_0
Initiator Scsi Device : \\.\Scsi1:
Initiator Bus : 0
Initiator Target Id : 0
Target Lun: 0x0 <--> OS Lun: 0x0
Target Lun: 0x300 <--> OS Lun: 0x3
Target Lun: 0x400 <--> OS Lun: 0x4
Target Lun: 0x500 <--> OS Lun: 0x5
Target Lun: 0x600 <--> OS Lun: 0x6