1.1 问题
本案例要求先搭建好一台iSCSI服务器,并将整个磁盘共享给客户端:
服务器上要额外配置一块硬盘
服务端安装target,并将新加的硬盘配置为iSCSI
的共享磁盘
在客户端上安装initiator,挂在服务器iSCSI,要求实现开机自动挂载
1.2 方案
使用2台RHEL6虚拟机,其中一台作为iSCSI服务器(192.168.4.5)、另外一台作为测试用的Linux客户机(192.168.4.205),如图-1所示。
RHEL7系统中,默认通过targetcli软件包提供iSCSI服务,因此需要在服务端安装targetcli包并配置对应的服务,iSCSI服务主要配置选项如表-1所示。
客户端挂载iSCSI服务器:
客户端需要安装iscsi-initiator-utils软件包
客户端使用命令挂载后需要分区、格式化并进行挂载测试
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:安装iSCSI服务器软件
1)使用yum安装targetcli软件包
[root@san ~]# yum
-y install targetcli
[root@san ~]# which targetcli
/usr/bin/targetcli
[root@san ~]# yum info targetcli
为虚拟机添加一个20G的磁盘
[root@san ~]# lsblk
vdb 252:16 0
20G 0
disk
步骤二:通过命令行配置iSCSI服务
1)定义后端存储
2)创建iqn对象
3) 授权客户机访问
4) 绑定存储
5)
绑定存储绑定监听地址,并保存配置
[root@san ~]#
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]
/> /backstores/block >create
ipsasn /dev/vdb
/backstores/block> create ipasn
/dev/vdb
Created block storage object ipasn
using /dev/vdb.
/backstores/block> ls
o- block
.................................................. [Storage
Objects: 1]
o- ipasn
......................... [/dev/vdb (20.0GiB) write-thru
deactivated]
o- alua
................................................... [ALUA Groups:
1]
o- default_tg_pt_gp
....................... [ALUA state: Active/optimized]
/backstores/block> cd
iscsi
No such path
/backstores/block/iscsi
/backstores/block> cd
/iscsi
/iscsi> ls
o- iscsi
..........................................................
[Targets: 0]
/iscsi> create
iqn.2018-08.cn.tedu:sharedisk
Created target
iqn.2018-08.cn.tedu:sharedisk.
Created TPG 1.
Global pref
auto_add_default_portal=true
Created default portal listening on
all IPs (0.0.0.0), port 3260.
/iscsi>
iqn.2018-08.cn.tedu:sharedisk/tpg1/acls create
iqn.2018-08.cn.tedu:client1
Created Node ACL for
iqn.2018-08.cn.tedu:client1
/iscsi> cd /
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json
服务管理:
[root@san ~]# systemctl
start target
[root@san ~]# ss -ntulp | grep
:3260
tcp LISTEN 0
256
*:3260
*:*
[root@san ~]# systemctl
enable target
[root@san ~]# systemctl is-enabled
target.service
enabled
客户端:
客户端安装软件并启动服务
[root@mysql1 ~]# yum -y install
iscsi-initiator-utils
2)设置本机的iqn名称
[root@mysql1 ~]# vim
/etc/iscsi/initiatorname.iscsi
3)发现远程target存储
[root@mysql1 ~]# man
iscsiadm
[root@mysql1 ~]# iscsiadm --mode
discoverydb --type sendtargets --portal 192.168.4.71
--discover
192.168.4.71:3260,1
iqn.2018-08.cn.tedu:sharedisk
3)客户端挂载iSCSI共享
[root@mysql1 ~]# lsblk
NAME MAJ:MIN RM
SIZE RO TYPE MOUNTPOINT
sda 8:0 0
20G 0
disk
[root@mysql1 ~]# mkfs.ext4
/dev/sda
[root@mysql1 ~]#
blkid
/dev/vda1:
UUID="5d6c8afe-b75a-4e6b-9de1-1a3eeeaf23d9"
TYPE="xfs"
/dev/vda2:
UUID="8HzKnG-z99E-gram-8cmA-Snmm-Nrwf-4R0i0Z"
TYPE="LVM2_member"
/dev/mapper/rhel-root:
UUID="862ad236-a628-46ce-81d2-eda3f90c8044"
TYPE="xfs"
/dev/mapper/rhel-swap:
UUID="aab7ca11-e7ab-4446-97ff-09026c1f12ab"
TYPE="swap"
/dev/sda:
UUID="c1aa5bea-2f49-44d4-abf4-c0c82dfd6916"
TYPE="ext4"
[root@mysql1 ~]# yum -y install
mariadb-server
[root@mysql1 ~]# vim
/etc/fstab
[root@mysql1 ~]# mount -a
[root@mysql1 ~]# ll -d
/var/lib/mysql
drwxr-xr-x. 3 root root 4096 8月
3 12:53 /var/lib/mysql
[root@mysql1 ~]# chown mysql.mysql
/var/lib/mysql
[root@mysql1 ~]# ll -d
/var/lib/mysql
drwxr-xr-x. 3 mysql mysql 4096 8月
3 12:53 /var/lib/mysql
[root@mysql1 ~]# systemctl
restart mariadb
进入数据库,添加部分数据:
[root@mysql1 ~]# mysql
MariaDB [(none)]> create database mydb;
Query OK, 1 row affected (0.01 sec)
MariaDB [(none)]> use mydb;
Database changed
MariaDB [mydb]> create table t1;
ERROR 1113 (42000): A table must have at least 1 column
MariaDB [mydb]> create table t1(id int,name
varchar(30));
Query OK, 0 rows affected (0.08 sec)
MariaDB [mydb]> insert into t1
values(1,"king"),(2,"jack")
-> ;
Query OK, 2 rows affected (0.01 sec)
Records: 2 Duplicates: 0
Warnings: 0
MariaDB [mydb]> select * from t1;
+------+------+
| id | name |
+------+------+
| 1 | king |
| 2 | jack |
+------+------+
2 rows in set (0.00 sec)
查看文件系统可以正常使用:
[root@mysql1 ~]# df
文件系统 1K-块 已用 可用 已用%
挂载点
/dev/mapper/rhel-root 17811456 3457312 14354144
20% /
devtmpfs 492200
0
492200 0%
/dev
tmpfs 508128
0
508128 0%
/dev/shm
tmpfs 508128
7200 500928
2% /run
tmpfs 508128
0
508128 0%
/sys/fs/cgroup
/dev/vda1 1038336
164008 874328
16% /boot
tmpfs 101628
0
101628 0%
/run/user/0
/dev/sda 20511312 75012 19371340 1% /var/lib/mysql
本地文件系统:ext2/3/4 xfs ,同时只能单台设备使用,不能多台设备使用
gfs 是集群文件系统,就可以同时多台设备使用
++++++++++++++++++++++++++++++++++++++++++++
授权另外一台客户端访问:
服务端:
[root@san ~]# targetcli
/>
iscsi/iqn.2018-08.cn.tedu:sharedisk/tpg1/acls/ create
iqn.2018-08.cn.tedu:client2
Created Node ACL for
iqn.2018-08.cn.tedu:client2
Created mapped LUN 0.
/>
saveconfig
Last 10 configs saved in
/etc/target/backup.
Configuration saved to
/etc/target/saveconfig.json
/>exit
客户端:
[root@mysql2 ~]# vim
/etc/iscsi/initiatorname.iscsi
发现存储:
[root@mysql2 ~]#
iscsiadm --mode discoverydb --type sendtargets
--portal 192.168.4.71 --discover
192.168.4.71:3260,1
iqn.2018-08.cn.tedu:sharedisk
192.168.4.71:3260,1
iqn.2018-08.cn.tedu.sharedisk
[root@mysql1 ~]# systemctl stop
mariadb
[root@mysql1 ~]# umount
/var/lib/mysql/
一个磁盘只能提供单台主机,共享磁盘 。多台主机一起共享数据,会损坏数据
[root@mysql1 ~]# ls
/var/lib/iscsi/
ifaces isns
nodes send_targets
slp static
[root@mysql1 ~]# ls
/var/lib/iscsi/send_targets/
192.168.4.71,3260
[root@mysql1 ~]# ls
/var/lib/iscsi/send_targets/192.168.4.71,3260/
iqn.2018-08.cn.tedu:sharedisk,192.168.4.71,3260,1,default
st_config
iqn.2018-08.cn.tedu.sharedisk,192.168.4.71,3260,1,default
[root@mysql2 ~]# systemctl restart
iscsi
[root@mysql2 ~]# lsblk
NAME MAJ:MIN RM
SIZE RO TYPE MOUNTPOINT
sda 8:0
0 20G
0 disk
sr0 11:0
1 1024M 0
rom
vda 252:0 0 20G 0
disk
├─vda1 252:1 0 1G
0 part /boot
└─vda2 252:2 0 19G 0
part
├─rhel-root 253:0 0 17G 0 lvm
/
└─rhel-swap 253:1 0 2G
0 lvm
[root@mysql2 ~]# blkid
/dev/vda1:
UUID="5d6c8afe-b75a-4e6b-9de1-1a3eeeaf23d9"
TYPE="xfs"
/dev/vda2:
UUID="8HzKnG-z99E-gram-8cmA-Snmm-Nrwf-4R0i0Z"
TYPE="LVM2_member"
/dev/mapper/rhel-root:
UUID="862ad236-a628-46ce-81d2-eda3f90c8044"
TYPE="xfs"
/dev/mapper/rhel-swap:
UUID="aab7ca11-e7ab-4446-97ff-09026c1f12ab"
TYPE="swap"
/dev/sda:
UUID="c1aa5bea-2f49-44d4-abf4-c0c82dfd6916"
TYPE="ext4"
不需要,创建文件系统,如果创建文件系统,如果创建文件系统,有的数据就会丢失和损坏
[root@mysql2 ~]# yum install
mariadb-server
[root@mysql2 ~]# mount /dev/sda
/var/lib/mysql
[root@mysql2 ~]# systemctl restart
mariadb.service
[root@mysql2 ~]# mysql
MariaDB [(none)]> show databases;
MariaDB [(none)]> use mydb;
MariaDB [mydb]> show tables;
MariaDB [mydb]> select * from t1;
+------+------+
| id | name |
+------+------+
| 1 | king |
| 2 | jack |
+------+------+
2 rows in set (0.00 sec)
[root@mysql1 ~]# yum install
tree
[root@mysql1 ~]# tree
/var/lib/iscsi/
清理工作:
1.停止mysql服务
[root@mysql2 ~]# systemctl
stop mariadb
2.卸载/var/lib/mysql
[root@mysql2 ~]# umount
/var/lib/mysql/
3.logout
(卸载块设备)
[root@mysql2 ~]# iscsiadm -m
node -T iqn.2018-08.cn.tedu:sharedisk -P
192.168.4.71 -u
Logging out of session [sid: 1, target:
iqn.2018-08.cn.tedu:sharedisk, portal: 192.168.4.71,3260]
Logout of [sid: 1, target: iqn.2018-08.cn.tedu:sharedisk,
portal: 192.168.4.71,3260] successful.
[root@mysql2 ~]# lsblk
[root@mysql2 ~]# systemctl stop iscsi