iSCSI远程块存储

来源:互联网 发布:小米在淘宝有旗舰店吗 编辑:程序博客网 时间:2024/05/20 16:11

1.iSCSI概念

iSCSI(Internet SCSI)支持从客户端(发起端)通过IP向远程服务器上的SCSI存储设备(目标)发送SCSI命令。iSCSI限定名称用于确定发起端和目标,并采用iqn.yyyy-mm.{reverse domain}:label的格式。默认情况下,网络通信是至iSCSI目标上的端口3260/tcp的明文。
iSCSI发起端:需要访问原始SAN存储的客户端。
iSCSI目标:从iSCSI服务器提供的远程硬盘磁盘,或“目标门户”
iSCSI目标门户:通过网络向发起端提供目标的服务器。
IQN:“iSCSI限定名称”。每个发起端和目标需要唯一名称进行标识,
最好的做法是使用一个在Internet上可能独一无二的名称

2.工作模式

这里写图片描述
这里写图片描述

3.iSCSI配置

服务端
yum install -y targetcli ##安装iSCSI目标软件包
systemctl enable target; systemctl start target ##启动服务
targetcli ##进入iSCSI目标交互式配置模式 显示如下:
/> ls
o- / …………………………………………………………… […]
o- backstores …………………………………………………. […]
| o- block ………………………………………. [Storage Objects: 0]
| o- fileio ……………………………………… [Storage Objects: 0]
| o- pscsi ………………………………………. [Storage Objects: 0]
| o- ramdisk …………………………………….. [Storage Objects: 0]
o- iscsi ……………………………………………….. [Targets: 0]
o- loopback …………………………………………….. [Targets: 0]
/> /backstores/block create server /dev/vdb1
/> /iscsi create iqn.2017-08.com.example:server
/> /iscsi/iqn.2017-08.com.example:server/tpg1/acls create iqn.2017-08.com.example:serverkey
/> /iscsi/iqn.2017-08.com.example:server/tpg1/luns create /backstores/block/server.disk1
/> /iscsi/iqn.2017-08.com.example:server/tpg1/portals create 172.25.254.137

##配置完成后内容如下:
/> ls
o- / ……………………………………………………………………. […]
o- backstores ………………………………………………………….. […]
| o- block ……………………………………………….. [Storage Objects: 1]
| | o- ppp:server …………………….. [/dev/vdb1 (2.0GiB) write-thru activated]
| o- fileio ………………………………………………. [Storage Objects: 0]
| o- pscsi ……………………………………………….. [Storage Objects: 0]
| o- ramdisk ……………………………………………… [Storage Objects: 0]
o- iscsi ………………………………………………………… [Targets: 1]
| o- iqn.2017-08.com.example:server ………………………………… [TPGs: 1]
| o- tpg1 …………………………………………….. [no-gen-acls, no-auth]
| o- acls ………………………………………………………. [ACLs: 1]
| | o- iqn.2017-08.com.example:serverkey ………………….. [Mapped LUNs: 1]
| | o- mapped_lun0 ………………………….. [lun0 block/ppp:storage1 (rw)]
| o- luns ………………………………………………………. [LUNs: 1]
| | o- lun0 ………………………………… [block/ppp:storage1 (/dev/vdb1)]
| o- portals …………………………………………………. [Portals: 1]
| o- 172.25.254.137:3260 ……………………………………………. [OK]
o- loopback ……………………………………………………… [Targets: 0]
/> exit

systemctl stop firewalld.service

客户端
yum install -y iscsi-initiator-utils ##安装iSCSI发起端软件包
在/etc/iscsi/initiatorname.iscsi中设置发起端的IQN:
InitiatorName=iqn.2017-08.com.example:server

相关命令:
iscsiadm -m discovery -t st -p 172.25.254.137 ##查找iSCSI服务器所提供的iSCSI目标

iscsiadm -m node -T iqn.2017-08.com.example:server -p
172.25.254.137 -l ##登录服务器上iscsi目标

iscsiadm -m node -T iqn.2017-08.com.example:rdisks.demo -p 172.25.254.137 -u ##注销目标

iscsiadm -m node -T iqn.2017-08.com.example:rdisks.demo -p 172.25.254.137 -o delete ##删除iSCSI目标

此时,可以使用iSCSI磁盘,就好像它是本地连接硬盘驱动器。
可以挂载现有文件系统。如果磁盘未格式化,可以通过fdisk进行分区,例如,通过文件系统格式化分区或作为LVM物理卷。
也可在/etc/fstab中永久挂载文件系统

中断使用iSCSI目标
确保没有使用目标所提供的任何设备。
确保从/etc/fstab等位置中删除使用目标的所有永久挂载。
登出iSCSI目标,以暂时断开连接。
iscsiadm -m node -T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254 -u
删除iSCSI目标的本地记录,以永久断开连接。
iscsiadm -m node -T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.254 -o delete

4.可扩展iSCSI

fdisk /dev/vdb ##建立磁盘分区/dev/vdb1、/dev/vdb2,磁盘system ID为8e
partprobe ##刷新分区表

配置lvm
[root@foundation89 ~]# pvcreate /dev/vdb1 ##创建pv
Physical volume “/dev/vdb1” successfully created
[root@foundation89 ~]# vgcreate vg0 /dev/vdb1 ##创建vg
Volume group “vg0” successfully created
[root@foundation89 ~]# lvcreate -L 500M -n lv0 vg0 ##创建lv
Logical volume “lv0” created
[root@foundation89 ~]# mkfs.ext4 /dev/vg0/lv0 ##磁盘格式化(建立文件系统)

##iSCSI服务端的配置与前面相同

挂载扩展磁盘:
[root@foundation89 ~]# pvcreate /dev/vdb2
Physical volume “/dev/vdb2” successfully created
[root@foundation89 ~]# vgextend vg0 /dev/vdb2 ##增加磁盘
Volume group “vg0” successfully extended
[root@foundation89 ~]# lvextend -L 1000M /dev/vg0/lv0 ##增加大小
Extending logical volume lv0 to 1000.00 MiB

客户端
iscsiadm -m node -T iqn.2017-08.com.example.issic-server -u ##先注销目标
再进行登录就可查看到磁盘大小的改变
iscsiadm -m node -T iqn.2017-08.com.example:server -p
172.25.254.137 -l

原创粉丝点击