Linux配置iSCSI存储
1、基础知识
1.1 存储相关
直接存储(DAS):例如本机上的磁盘,就是属于直接存储设备。
存储区域网络(SAN):来自网络内的其他存储设备提供的磁盘。Iscsi就是属于该方式。
网络文件系统(NAS):直接提供文件系统,可以立即使用。
1.2 ISCSI相关基础
iscsi target:存储设备端,服务器端的设备,为其他服务器提供“磁盘”。
Iscsi initiator:使用target提供“磁盘”的客户端。
2、ISCSI服务器端安装配置
2.1、实验环境
[root@test2 ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
192.168.110.167作为target,initiator为192.168.110.166
2.2、target安装与配置
(1)安装软件包:
#scsi-target-utils
#perl-Config-General-2.44-1.el6.noarch.rpm
[root@test ~]# rpm -qa |grep scsi-target-utils
scsi-target-utils-1.0.24-18.el6.x86_64
[root@test ~]# rpm -qa |grep perl-Config-General
perl-Config-General-2.52-1.el6.noarch
[root@test ~]#
(2) 主要配置文件及命令:
/etc/tgt/target.conf 主要配置文件
/usr/sbin/tgt-admin 在线查询、删除target等功能命令
/usr/sbin/tgtd 主要提供iSCSI target服务的主程序
iSCSI是对应透明的,以下几种方式可以作为“磁盘”分享出去给initiator使用:
(1)大型文件[dd]命令生成(2)磁盘阵列、磁盘或者磁盘分区等真实磁盘 (3)使用LVM中的逻辑卷
(3)启动服务
[root@test ~]# service tgtd restart
[root@test ~]# chkconfig tgtd on
(4)使用fdisk创建一个500M分区/dev/sdc1,或者在文件系统上创建一个镜像文件。
[root@test ~]# fdisk -l
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
[root@test ~]# fdisk /dev/sdb 分一个500M的分区
[root@test ~]# partprobe
编辑/etc/tgt/target.conf,并设置iSCSI Qualified Name(IQN)
<target iqn.2018-09.com.example:server.target1>
backing-store /dev/sdc1
write-cache on #开启写缓存
initiator-address 192.168.110.167#客户端访问控制
</target>
保存并推出,重启服务后生效。
注意开启服务:
[root@test ~]# service tgtd restart
查看target信息:tgt-admin --show
(5)相关参数解释
SCSI的target名称的命名方式:
iqn.yyyy-mm.<reversed domain name>[:identifier]
其含义:
iqn表示“iSCSI Qualified Name”,简称iqn。yyyy-mm表示“年-月”。reversed domain name表示倒过来的域名。identifier是识别名称。
几个常用的参数含义如下:
backing-store:虚拟设备,与之对应的是direct-store(实际设备),设定的时候,如果把整块磁盘全部拿来使用可以使用配置direct-store,
反之使用backing-store,这里使用backing-store,计划在今后的生产环境中使用LVM逻辑卷,那么这里的配置还是应该使用backing-store。
initiator-address:用户端地址,可以用来限制initiator的来源IP。
incominguser:用户名与密码,可以设定initiator使用账户密码才可以使用对应target
3、iSCSI客户端配置
3.1安装客户端软件包
[root@test2 ~]# yum install iscsi-initiator-utils* - y
[root@test2 ~]# rpm -qa |grep iscsi-initiator
iscsi-initiator-utils-devel-6.2.0.873-27.el6_9.x86_64
iscsi-initiator-utils-6.2.0.873-27.el6_9.x86_64
[root@test2 ~]#
3.2启动服务并添加开机启动
# [root@test2 ~]# /etc/init.d/iscsi start
#[root@test2 ~]#chkconfig iscsi on
3.3 发现iSCSI server的共享分区
[root@test2 ~]# iscsiadm --mode discoverydb --type sendtargets --portal 192.168.110.166 --discover
192.168.110.166:3260,1 iqn.2018-09.com.example:server.target1
登录到iSCSI server共享的分区:
[root@test2 ~]# iscsiadm --mode node --targetname iqn.2018-09.com.example:server.target1 --portal 192.168.110.166:3260 --login
Logging in to [iface: default, target: iqn.2018-09.com.example:server.target1, portal: 192.168.110.166,3260] (multiple)
Login to [iface: default, target: iqn.2018-09.com.example:server.target1, portal: 192.168.110.166,3260] successful.
使用fdisk -l查看多出来的分区/dev/sdb
[root@test2 ~]# fdisk -l
Disk /dev/sdb: 534 MB, 534610944 bytes
17 heads, 60 sectors/track, 1023 cylinders
Units = cylinders of 1020 * 512 = 522240 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
3.4 格式化分区,挂载到本地
若要实现开机自动启动,在fstab中添加记录,定要添加_netdevc 参数。
如果提示没有分区表,fdisk /dev/sdb x--w,再创建分区。mkfs.ext4 /dev/sdb1
永久挂载:vim /etc/fstab UUID挂载
/dev/sdb1 /mnt/iscsi ext4 defaults,_netdev 0 0
查看UUID:
[root@test2 ~]# blkid
/dev/mapper/vg_test2-lv_root: UUID="c62019fc-8335-46bf-98b7-65a0a9f5d561" TYPE="ext4"
/dev/sda1: UUID="b689f648-44ce-404e-aa9f-22816e5222cc" TYPE="ext4"
/dev/sda2: UUID="3xXzPi-VHr2-OhgM-beof-zBiF-wZcA-zNDEUY" TYPE="LVM2_member"
/dev/mapper/vg_test2-lv_swap: UUID="ae4f90ff-65a0-4815-9202-c584e0b78e19" TYPE="swap"
/dev/mapper/vg_test2-lv_home: UUID="16ed060a-0747-4145-8114-0739dbf5cf03" TYPE="ext4"
3.5 [root@test2 ~]# man iscsiadm
EXAMPLES
Discover targets at a given IP address:
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.1.10 --discover
Login, must use a node record id found by the discovery:
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --login
Logout:
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --logout
List node records:
iscsiadm --mode node
Display all data for a given node record:
iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260
FILES
/etc/iscsi/iscsid.conf
The configuration file read by iscsid and iscsiadm on startup.
/etc/iscsi/initiatorname.iscsi
The file containing the iSCSI InitiatorName and InitiatorAlias read by iscsid and iscsiadm on startup.
苦难并非乐事,但能者等闲视之,人生本来就是苦中作乐,切莫长吁短叹,虚度年华。