RedHat6 ISCSI
实验目的:
了解iscsi概念
掌握iscsi配置
实验步骤:
步骤一、ISCSI概念
在集群环境中,一台服务器向外提供服务,为了避免这个服务的单点故障,我们往往会为这个服务做个一个冗余,那么问题就来了,做了冗余的两台服务器,一台主服务器向外提供服务,另一台服务器做辅助服务器,下班之后,你还需要手动的把主服务器的资料同步到辅助服务器里。你不觉的麻烦摸。而且主服务器挂了,辅助服务器提供服务,辅助服务器的资料和主服务器的资料不一样啊,这不出问题了摸。所以就有了ISCSI
ISCSI原理:
我干脆把磁盘放在两台服务器的外面,我把磁盘共享到主服务器和辅助服务器上,主服务器挂了,对磁盘上的资料没有任何影响,主服务器和辅助服务器资料始终都是同步的,因为资料始终都在一个硬盘里面。
ISCSI:就是在网络上共享磁盘的技术
运用ISCSI技术,磁盘阵列柜是ISCSI服务器,而主服务器和辅助服务器是ISCSI客户端
步骤二、ISCSI配置
做iscsi首先关掉防火墙,iscsi服务器和客户端都要关掉
[root@master~]# system-config-firewall
root@master~]# iptables -L
ChainINPUT (policy ACCEPT)
target prot opt source destination
ChainFORWARD (policy ACCEPT)
target prot opt source destination
ChainOUTPUT (policy ACCEPT)
target prot opt source destination
[root@master~]# service iptables save
iptables:Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Iscsi服务器:
也就是磁盘阵列柜
安装scsi-target*软件包,启动tgtd服务
[root@storage ~]#yum -y install scsi-target*
[root@storage ~]#service tgtd restart
Stopping SCSI target daemon: [ OK ]
Starting SCSI target daemon: [ OK ]
[root@storage ~]#chkconfig tgtd on
修改iscsi的主配置文件/etc/tgt/targets.conf
向iscsi客户端提供共享硬盘的名字为iqn.example.com:storage,要共享的硬盘是/dev/sda5
Initiator-address允许那些iscsi客户端来连接iscsi服务器所共享的这个硬盘
[root@storage ~]#vim /etc/tgt/targets.conf
<target iqn.example.com:storage>
backing-store /dev/sda5
initiator-address 172.18.0.1
initiator-address 172.18.0.2
initiator-address 172.19.0.1
initiator-address 172.19.0.2
</target>
重启服务,是对主配置文件做更改生效
[root@storage ~]#service tgtd restart
Stopping SCSI target daemon: [ OK ]
Starting SCSI target daemon: [ OK ]
[root@desktop24 ~]# tgt-admin -s
Target 1:iqn.2015-10-17.example.com:storage
System information:
Driver: iscsi
State: ready
I_T nexus information:
I_T nexus: 1
Initiator: iqn.1994-05.com.redhat:46ccba2165ee
Connection: 0
IP Address: 172.18.0.1
I_T nexus: 2
Initiator: iqn.1994-05.com.redhat:46ccba2165ee
Connection: 0
IP Address: 172.19.0.1
I_T nexus: 3
Initiator: iqn.1994-05.com.redhat:46ccba2165ee
Connection: 0
IP Address: 172.18.0.2
I_T nexus: 4
Initiator: iqn.1994-05.com.redhat:46ccba2165ee
Connection: 0
IP Address: 172.19.0.2
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 2147 MB, Block size: 512
Online: Yes
Removable media: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/vol0/storage
Backing store flags:
Account information:
ACL information:
172.18.0.1
172.18.0.2
172.19.0.1
172.19.0.2
ISCSI客户端:
也就是主服务器和辅助服务器
安装iscsi-init*软件包,启动iscsi和iscsid服务,iscsid会启动失败是正常现象。
[root@master ~]#yum -y install iscsi-init*
[root@master ~]#service iscsi restart
[root@master ~]#service iscsid restart
[root@master ~]#chkconfig iscsi on
[root@master ~]#chkconfig iscsid on
iscsiadm -m discovery -t sendtargets -p 172.18.0.3:3260命令来发现iscsi服务器172.18.0.3所共享过来的硬盘名字为iqn.example.com:storage,用iscsiadm -m node -T iqn.example.com:storage -p 172.18.0.3:3260 -l这个命令把iscsi服务器的硬盘个映射到iscsi客户端上
[root@master ~]# iscsiadm -m discovery -t sendtargets -p 172.18.0.3:3260
172.18.0.3:3260,1 iqn.example.com:storage
[root@master ~]# iscsiadm -m node -T iqn.example.com:storage -p 172.18.0.3:3260 -l
Logging in to [iface: default, target:iqn.example.com:storage, portal: 172.18.0.3,3260] (multiple)
Login to [iface: default, target:iqn.example.com:storage, portal: 172.18.0.3,3260] successful.
一盘服务器和磁盘阵列柜有两条物理线路的,所以要把同一个硬盘共享两个物理线路去,所以服务器里有两个被映射过来的设备。
[root@master ~]# iscsiadm -m discovery -t sendtargets -p 172.19.0.3:3260
172.19.0.3:3260,1 iqn.example.com:storage
[root@master ~]# iscsiadm -m node -T iqn.example.com:storage -p 172.19.0.3:3260 -l
Logging in to [iface: default, target:iqn.example.com:storage, portal: 172.19.0.3,3260] (multiple)
Login to [iface: default, target:iqn.example.com:storage, portal: 172.19.0.3,3260] successful.
Fdisk –l 查看到被共享过来的是/dev/sda和/dev/sdb设备
[root@master ~]# fdisk -l
Disk /dev/sda: 1079 MB, 1079022080 bytes
34 heads, 61 sectors/track, 1016 cylinders
Units = cylinders of 2074 * 512 = 1061888bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0xf4e70f82
Device Boot Start End Blocks Id System
/dev/sdb1 1 100 103669+ 83 Linux
Disk /dev/sdb: 1079 MB, 1079022080 bytes
34 heads, 61 sectors/track, 1016 cylinders
Units = cylinders of 2074 * 512 = 1061888bytes
Sector size (logical/physical): 512 bytes /512 bytes
I/O size (minimum/optimal): 512 bytes / 512bytes
Disk identifier: 0xf4e70f82
Device Boot Start End Blocks Id System
/dev/sdc1 1 100 103669+ 83 Linux
[root@desktop30 /]# partprobe /dev/sdb
[root@desktop30 /]# mkfs.ext4 /dev/sdb1
把设备/dev/sdb1永久挂载在/mnt/data上,在/dev/sdb1 /mnt/data ext4 defaults,_netdev 0 0上一定要加上_netdev参数,表明/dev/sdb1是一个网络设备,不然系统重启时,可能启动不起来,如果没有那个参数启动不起来,那就进入破密码的界面中,添加这个参数,然后就能重新启动系统了
[root@desktop30 /]# vim /etc/fstab
# /etc/fstab
# Created by anaconda on Thu May 7 12:08:27 2015
#
# Accessible filesystems, by reference, aremaintained under '/dev/disk'
# See man pages fstab(5), findfs(8),mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=ba6dafe8-fc90-4c85-814f-d7899838768d/boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /mnt/data ext4 defaults,_netdev 0 0
Blkid查看各个设备的UUID号(物理唯一标识)
[root@desktop30 /]# blkid
/dev/sda1:UUID="ba6dafe8-fc90-4c85-814f-d7899838768d" TYPE="xfs"
/dev/sda2:UUID="rwoaAh-MDeM-Qy6J-8Cdb-QRhy-lffa-HDvJkN"TYPE="LVM2_member"
/dev/sr0:UUID="2014-04-09-14-14-56-00" LABEL="RHEL-7.0Server.x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/mapper/rhel-root:UUID="d33b2b53-f49e-4d6f-b4d6-e2bd2ea96441" TYPE="xfs"
/dev/mapper/rhel-swap:UUID="deccee2e-5933-44c5-ba8f-10209577bd53" TYPE="swap"
/dev/sdb1: UUID="3dd93816-2311-412b-b057-a06361fb70cb"TYPE="ext4"
在windos中,有时候C盘重装系统了,D盘变成C盘了,就是磁盘的逻辑名称会不断的变化,所以了我们最后用磁盘的物理名称来挂载。
[root@desktop30 /]# vim /etc/fstab
# /etc/fstab
# Created by anaconda on Thu May 7 12:08:27 2015
#
# Accessible filesystems, by reference, aremaintained under '/dev/disk'
# See man pages fstab(5), findfs(8),mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=ba6dafe8-fc90-4c85-814f-d7899838768d/boot xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
UUID="3dd93816-2311-412b-b057-a06361fb70cb" /mnt/data ext4 defaults,_netdev 0 0
[root@desktop30 /]# mkdir /mnt/data
[root@desktop30 /]# mount -a
[root@desktop30 /]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/rhel-root 5109760 3102280 2007480 61% /
devtmpfs 1012192 0 1012192 0% /dev
tmpfs 1021500 184 1021316 1% /dev/shm
tmpfs 1021500 9136 1012364 1% /run
tmpfs 1021500 0 1021500 0% /sys/fs/cgroup
/dev/sda1 201388 106040 95348 53% /boot
/dev/sdb1 2051020 6312 1920804 1% /mnt/data
iscsi磁盘下线:
/dev/sdb磁盘就不在iscsi客户端里了
[root@desktop30 /]# iscsiadm -m discovery -t sendtargets -p 172.16.30.130
172.16.30.130:3260,1iqn.2015-05.com.example:server
[root@desktop30 /]# iscsiadm -m node -T iqn.2015-05.com.example:server-p172.16.30.130 -u
Logging out of session [sid: 4, target:iqn.2015-05.com.example:server, portal: 172.16.30.130,3260]
Logout of [sid: 4, target:iqn.2015-05.com.example:server, portal: 172.16.30.130,3260] successful.
[root@desktop30 /]# iscsiadm -m node -T iqn.2015-05.com.example:server -p172.16.30.130 -o delete
iscsi服务配置做了什么更改,在实际企业中,千万不要重启Iscsi服务,它会停止iscsi服务,实际企业中怎么可以停掉这个服务了?敲tgt-admin -update ALL更新所有的iscsi配置,它不会停止服务,就可以应用你所做的更改。-f强制的意思。
[root@desktop30 /]#tgt-admin --update ALL -f
ISCSI用户验证:
iscsi服务端:
[root@desktop24 ~]# cat /etc/tgt/targets.conf
<targetiqn.2015-10-17.example.com:storage>
backing-store /dev/vol0/storage
initiator-address 172.18.0.1
initiator-address 172.18.0.2
initiator-address 172.19.0.1
initiator-address 172.19.0.2
incominguser user1 redhat
</target>
user1和redhat分别是用户名和密码,iscsi客户端本地没有此用户名,是iscsi服务端虚拟出来的,iscsi客户端想要把磁盘映射过来,必须在/etc/iscsi/iscsid.conf配置文件里输入这个虚拟的用户名和密码才能把磁盘映射过来。
iscsi客户端:
[root@node1~]#vim/etc/iscsi/iscsid.conf
# To set a CHAP username and password forinitiator
# authentication by the target(s),uncomment the following lines:
node.session.auth.username = user1
node.session.auth.password = redha
iscsi客户端做完这个,才能连上去,否则是连不上去的