Linux iSCSI 网络磁盘
介绍
ISCSI网络磁盘是一种利用TCP/IP协议在网络上传输SCSI命令的技术,可以实现远程访问存储设备的功能。ISCSI网络磁盘可以用于存储整合和灾难恢复的场景,也可以节省专用光纤网络的成本。1
如果你想使用ISCSI网络磁盘,你需要在服务器端安装和配置ISCSI目标服务,然后在客户端安装和配置ISCSI发起程序,通过IP地址或DNS名称连接到服务器上的虚拟磁盘,并进行格式化和使用。
iSCSI 优缺点
ISCSI网络磁盘的优点有:
- 成本低廉:ISCSI网络磁盘可以利用现有的以太网和IP网络,无需额外的光纤网络和设备,节省了硬件和维护的费用。
- 部署简单:ISCSI网络磁盘可以通过IP地址或DNS名称进行连接,无需复杂的配置和调试,也方便了远程管理和扩展。
- 灵活性高:ISCSI网络磁盘可以支持多种类型的存储设备,如SCSI和SATA,也可以与传统的RAID磁盘阵列结合使用,提供更大的存储容量。
ISCSI网络磁盘的缺点有:
- 性能较低:ISCSI网络磁盘的数据传输速度受到以太网和TCP/IP协议的限制,比光纤通道存储网络要慢得多。
- 安全性较差:ISCSI网络磁盘的数据在网络上可能会遭到拦截或篡改,需要额外的加密和验证机制来保证安全性。
- 技术不成熟:ISCSI网络磁盘是一种相对较新的技术,市场上支持该技术的软硬件产品还不够多,可能会遇到兼容性或稳定性的问题。
ISCSI网络磁盘如何提高性能?
ISCSI网络磁盘的性能受到多种因素的影响,如果想要提高性能,可以从以下几个方面进行优化:
- 提高网络带宽:ISCSI网络磁盘的数据传输速度取决于网络的带宽,如果网络拥塞或者带宽不足,会导致数据包的丢失或延迟,影响性能。因此,可以通过升级网络设备,使用千兆网卡和交换机,或者使用多路径技术,来提高网络的带宽和可靠性。
- 使用专用网络:ISCSI网络磁盘的数据在网络上可能会与其他类型的流量发生冲突,造成干扰和抖动,影响性能。因此,可以通过使用专用的网络或者虚拟局域网(VLAN),来隔离ISCSI流量和其他流量,减少网络的负载和竞争。
- 使用硬件加速:ISCSI网络磁盘的数据在传输过程中需要进行封装和解封装,以及加密和验证等操作,这些操作会消耗服务器的CPU资源和内存资源,影响性能。因此,可以通过使用硬件加速设备,如ISCSI HBA或者TCP/IP卸载引擎(TOE),来减轻服务器的负担,提高数据处理的效率。
部署
Server 端
初始化配置
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
安装 iSCSI 服务端软件包
yum -y install targetcli
配置 iSCSI 服务端
[root@Demo01 ~]# targetcli
targetcli shell version 2.1.53
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> 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]
/>
创建iSCSI target名称及配置共享资源。
/> cd /backstores/block
/backstores/block> create disk01 /dev/sdb
Created block storage object disk0 using /dev/md0.
/backstores/block> cd /
/> ls
o- / ............................................................................ [...]
o- backstores ................................................................. [...]
| o- block ..................................................... [Storage Objects: 1]
| | o- disk0 ............................ [/dev/sdb (20.0GiB) write-thru deactivated]
| | 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: 0]
o- loopback ............................................................ [Targets: 0]
/>
创建iSCSI target名称及配置共享资源。
/iscsi> create
Created target iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
/iscsi> ls
o- iscsi ................................................................... [Targets: 1]
o- iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be ............. [TPGs: 1]
o- tpg1 ...................................................... [no-gen-acls, no-auth]
o- acls ................................................................. [ACLs: 0]
o- luns ................................................................. [LUNs: 0]
o- portals ........................................................... [Portals: 1]
o- 0.0.0.0:3260 ......................
创建一个设备目录
/iscsi> cd iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be /
/iscsi/iqn.20....745b21d6cad5> cd tpg1/luns
/iscsi/iqn.20...ad5/tpg1/luns> create /backstores/block/disk0
Created LUN 0.
设置控制访问ACL
/iscsi/iqn.20...ad5/tpg1/luns> cd ..
/iscsi/iqn.20...21d6cad5/tpg1> cd acls
/iscsi/iqn.20...ad5/tpg1/acls> create iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be
Created Node ACL for iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be
Created mapped LUN 0.
设置iSCSI服务端的监听IP地址和端口号。
/iscsi/iqn.20...ad5/tpg1/acls> cd ../portals/
/iscsi/iqn.20.../tpg1/portals> ls
o- portals ................................................................... [Portals: 1]
o- 0.0.0.0:3260 .................................................................... [OK]
/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20.../tpg1/portals> create 192.168.10.10
Using default IP port 3260
Created network portal 192.168.10.10:3260.
配置完成最后 ls 查看
/> ls
o- / .......................................................... [...]
o- backstores ............................................... [...]
| o- block ................................... [Storage Objects: 1]
| | o- disk01 ........... [/dev/sdb (20.0GiB) 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.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be [TPGs: 1]
| o- tpg1 ................................ [no-gen-acls, no-auth]
| o- acls ........................................... [ACLs: 1]
| | o- iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be [Mapped LUNs: 1]
| | o- mapped_lun0 ................. [lun0 block/disk01 (rw)]
| o- luns ........................................... [LUNs: 1]
| | o- lun0 ...... [block/disk01 (/dev/sdb) (default_tg_pt_gp)]
| o- portals ..................................... [Portals: 1]
| o- 192.168.10.25:3260 ................................ [OK]
o- loopback .......................................... [Targets: 0
Client 端
安装客户端iSCSI 软件
yum -y install iscsi-initiator-utils
配置客户端
[root@linuxprobe ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be
[root@linuxprobe ~]# systemctl restart iscsid
[root@linuxprobe ~]# systemctl enable iscsid
连接访问iSCSI
iscsiadm -m discovery -t st -p 192.168.10.25
192.168.10.25:3260,1 iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be
iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.demo01.x8664:sn.c9eccc3e35be -p 192.168.10.25 --login
格式化
mkfs.xfs /dev/sdb
meta-data=/dev/sdb isize=512 agcount=16, agsize=654720 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1
data = bsize=4096 blocks=10475520, imaxpct=25
= sunit=128 swidth=256 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=5120, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
挂载
mkdir /data
mount /dev/sdb /data
查看挂载情况
df -TH
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 19G 1.4G 17G 8% /
devtmpfs devtmpfs 942M 0 942M 0% /dev
tmpfs tmpfs 954M 0 954M 0% /dev/shm
tmpfs tmpfs 954M 11M 944M 2% /run
tmpfs tmpfs 954M 0 954M 0% /sys/fs/cgroup
/dev/sda2 xfs 1.1G 144M 920M 14% /boot
/dev/sda1 vfat 210M 12M 198M 6% /boot/efi
tmpfs tmpfs 191M 0 191M 0% /run/user/0
/dev/sdb xfs 20G 19M 20G 1% /data