配置iSCSI服务

1.1 问题

本案例要求先搭建好一台iSCSI服务器,并将整个磁盘共享给客户端:

  • 服务器上要额外配置一块硬盘
  • 服务端安装target,并将新加的硬盘配置为iSCSI 的共享磁盘
  • 在客户端上安装initiator,挂在服务器iSCSI,要求实现开机自动挂载

1.2 方案

使用2台RHEL6虚拟机,其中一台作为iSCSI服务器(192.168.4.5)、另外一台作为测试用的Linux客户机(192.168.4.205),如图-1所示。

配置iSCSI服务
 

RHEL7系统中,默认通过targetcli软件包提供iSCSI服务,因此需要在服务端安装targetcli包并配置对应的服务,iSCSI服务主要配置选项如表-1所示。

配置iSCSI服务

客户端挂载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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维螺丝钉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值