ISCSI是典型的IP-SAN技术,是基于因特网的SAN存储技术。这个技术没有存储设备的距离限制,能够让任何主机都可以通过局域网访问到这个存储设备,对于数据中心而言是非常重要的。一块物理的硬盘能让非常多设备访问,这也是节省资源的一种方法。
下面Vincen用两个Linux系统做示例,一个是服务端centos,提供ISCSI磁盘共享服务;一个是客户端Redhat,访问服务端的ISCSI磁盘。
服务端操作:
1、为虚拟机增加硬盘。虚拟机设置>添加>选择硬盘>添加>添加>添加>完成(默认20G大小)
2、添加多一块虚拟硬盘后,重启虚拟机。然后查看分区设备
[root@centos-server ~]# lsblk #查看本机识别的硬盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk #这是增加的虚拟硬盘
3、创建分区
[root@centos-server ~]# fdisk /dev/sdb #创建分区命令
命令(输入 m 获取帮助):n #创建分区
分区号 (1-4,默认 1):[回车]
起始 扇区 (20973568-41943039,默认为 20973568):[回车]
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+2G #创建一个2G的分区
命令(输入 m 获取帮助):p #查看创建的分区
设备 Boot Start End Blocks Id System
/dev/sdb1 20973568 25167871 2097152 83 Linux #创建的分区信息
命令(输入 m 获取帮助):w #保存并退出
4、服务端搭建ISCSI服务,安装targetcli包
[root@centos-server ~]# yum -y install targetcli
5、进入服务界面,并查看
[root@centos-server ~]# targetcli #进入服务
/> 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]
/>
6、将分区加入到后端储存
/> /backstores/block create back_store /dev/sdb1
7、创建一个ISCSI共享名称
/> /iscsi create iqn.2018-01.com.example:server
#共享名的要求:“iqn.年-月.反转域名:任意字符串”
8、将共享名和后端设备关联起来
/> iscsi/iqn.2018-01.com.example:vincen/tpg1/acls create iqn.2018-02.com.example:vincent
9、查看当前。(对比第五步,明显看出创建的信息)
/> ls
o- / ............................................... [...]
o- backstores .................................... [...]
| o- block ....................................... [Storage Objects: 1]
| | o- back_store .......... [/dev/sdb1 (0 bytes) write-thru activated]
| | o- alua .................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ............ [ALUA state: Active/optimized]
| o- fileio ...................................... [Storage Objects: 0]
| o- pscsi ....................................... [Storage Objects: 0]
| o- ramdisk ..................................... [Storage Objects: 0]
o- iscsi ......................................... [Targets: 1]
| o- iqn.2018-09.com.example:server .............. [TPGs: 1]
| o- tpg1 ...................................... [no-gen-acls, no-auth]
| o- acls .................................... [ACLs: 1]
| | o- iqn.2018-09.com.example:vincent ....... [Mapped LUNs: 1]
| | o- mapped_lun0 ......................... [lun0 block/back_store (rw)]
| o- luns .................................... [LUNs: 1]
| | o- lun0 ............ [block/back_store (/dev/sdb1) (default_tg_pt_gp)]
| o- portals ................................. [Portals: 1]
| o- 0.0.0.0:3260 .......................... [OK]
o- loopback ...................................... [Targets: 0]
10、保存、退出
/> saveconfig #保存
/> exit #退出
11、重启服务端ISCSI的服务
[root@centos-server ~]# systemctl restart target
客户端操作:
1、先查看本机的硬盘设备
[root@localhost ~]# lsblk
2、安装ISCSI客户端的包
[root@localhost ~]# yum -y install iscsi-initiator-utils.i686
3、修改配置文件,添加访问口令
[root@localhost ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-02.com.example:vincent
#iqn.2018-02.com.example:vincent 这个可以从服务端的访问口令中复制。不能有错误
#访问口令相当于一个登陆百度网盘的密码
4、启动ISCSI客户端服务
[root@localhost ~]# systemctl start iscsi #客户端秦东iscsi服务
5、查看服务端的ISCSI IQN信息
[root@localhost ~]# iscsiadm -m node -T iqn.2018-09.com.example:server
172.25.0.5:3260,1 iqn.2018-09.com.example:server
#查看另一个虚拟机上的IP和ISCSI的IQN信息
6、挂载共享磁盘
[root@localhost ~]# iscsiadm -m node -T iqn.2018-09.com.example:server
7、查看客户端的虚拟机可识别的硬盘。名称为sdb,大小为2G。
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─rhel-root 253:0 0 17.5G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 2G 0 disk #共享到的磁盘,大小为2G,可以使用
sr0 11:0 1 3.5G 0 rom /mnt
到这里,ISCSI磁盘共享服务就已经完成了,客户端的Linux系统也可以访问并使用服务端的ISCSI磁盘。