使用 iSCSI服务部署网络存储

iSCSI实现了物理硬盘与TCP/IP网络协议的相互结合,使用户可以通过互联网远程访问共享存储资源

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  • iSCSI技术介绍

硬盘接口:

IDC:一种成熟稳定价格便宜的并行传输接口

SATA:一种传输速度更快,数据校验更完整的串行传输接口

SCSI:用于计算机和硬盘,光驱等设备之间系统级接口的通用标准,具有系统资源占用低,转速高,传输速度快优点;

  • 创建RAID磁盘阵列

实验:

1:创建ISCSI前需要先建立RAID确保数据的安全性

# mdadm  -Cv  /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde

2:由于使用远程设备时可能出现设备名顺序发生变化,所有在挂载时使用UUID来挂载;

# mdadm  -D  /dev/md0

  • 配置 iSCSI服务端

iSCSI在工作形式上分为:

服务端(target):用于存放磁盘存储资源的服务器;

客户端(initiator):是用户使用的软件,用于访问远程服务端的存储资源;

实验:

1:配置 iSCSI服务端,先安装 ISCSI服务端程序及配置命令工具;

安装 iscsi服务

# yum  install  -y  targetd

安装 配置命令工具

# yum  install  -y  targetcli

2:配置 iscsi服务器共享资源;

targetcli

命令提供类似于 fdisk命令的交互式配置功能,将iscsi共享资源的配置内容抽象成 目录 的形式,将各类配置信息填入相应的 目录 中即可;

进入targetcli交互式配置界面,cd进入/backstores/block,create将/dev/md0磁盘设置成给用户识别的磁盘 fdisk0;

# targetcli

/backstores/block:是iscsi服务端配置共享设备的位置;

# cd  /backstores/block

# create  disk0  /dev/md0

RHEL7--第十七章-iSCSI 随笔 第1张 

3:创建 iscsi target的名称及配置共享资源;

1)iscsi target名称 由系统自动生成,一串描述共享资源的唯一字符串;用户在扫描 iscsi服务端时即可看到这个字符串;

2)生成target名称后,还会在 /ISCSI参数目录中创建一个与其字符串同名的新“目录”,用于存放共享资源;

3)把之前的iscsi共享资源池中的硬盘设备 fdisk 0 添加到新目录中,用户登录iscsi服务端后,即可默认使用这块硬盘;

# cd  iscsi

# create

RHEL7--第十七章-iSCSI 随笔 第2张

进入创建target名称后,系统新建的新目录中,将磁盘disk0添加进入新目录中;

# cd tpg1/luns

# create  /backstores/block/disk0

RHEL7--第十七章-iSCSI 随笔 第3张 

4:设置访问控制列表(ACL)

acls参数目录:用于存放能够访问 iscsi服务端共享存储的客户端名称,建议在target名称后面加上.client。便于管理;

# cd  acls

# create iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ee7f4b9e4ec3.client

RHEL7--第十七章-iSCSI 随笔 第4张

5:设置iscsi服务端的监听IP地址和端口号

portals参数目录:服务端指定网卡或IP地址对外提供共享存储资源;

# cd  portals

先把默认的 0.0.0.0 3260删除,否认报错“Could not create NetworkPortal in configFS

# delete  0.0.0.0 3260

# create  192.168.10.20

RHEL7--第十七章-iSCSI 随笔 第5张

RHEL7--第十七章-iSCSI 随笔 第6张

6:检查配置信息,重启 iscsi服务器并配置防火墙策略;

#  cd  /

# ls  查看配置信息

退出保存配置信息,千万不能使用 ctrl+C来退出,这样不保存配置!!!

# exit  使用 exit 来保存退出!!!

RHEL7--第十七章-iSCSI 随笔 第7张

重启 iscsi服务及配置防火墙放行3260端口;

# systemctl  restart targetd

# firewall-cmd --permanent  --add-port=3260/tcp

# firewall-cmd --reload

至此 iscsi服务端配置完成!!!

  • 配置Linux客户端

实验

1:安装 iscsi客户端程序 initiator,默认是已经安装的;

# yum  install -y  iscsi-initiator-utils 

2:编辑 iscsi客户端initiator的配置文件

# vim  /etc/iscsi/initiatorname.iscsi

必须把配置中默认的一行 InitiatorName 删除,否则后面登录iscsi服务端会出错

RHEL7--第十七章-iSCSI 随笔 第8张

3:重启 iscsi客户端 initiator服务

# systemctl  restart  iscsid

# systemctl  enable  iscsid

4:先发现,再登录,最后挂载并使用

iscsiadm

用于管理,查询,插入,更新或删除ISCSI数据库配置文件的命令工具;

# iscsiadm  -m discovery  -t st -p 192.168.10.20

RHEL7--第十七章-iSCSI 随笔 第9张

解析:

-m discovery:扫描并发现可用的存储资源

-t st:执行扫描操作的类型;

-p 192.168.10.20:指定iscsi服务端的IP地址;

5:发现可用存储资源后,登录 iscsi服务端

# iscsiadm  -m node -T iqn.2003-01.org.linux-iscsi.localhost.x8664:sn.ee7f4b9e4ec3  -p 192.168.10.20 --login

6:登录后,查看是否有新的硬盘出现,格式化并挂载;

# fdisk -l

# mkfs.xfs  /dev/sdd

# mkdir /iscsi

# mount  /dev/sdd /iscsi

7:永久挂载iscsi硬盘,由于 udev服务是按照系统识别硬盘设备的顺序来命名硬盘,当远程多个存储资源时,下一次识别设备时顺序会发生变化,搞乱挂载目录信息,为了防止这种事情发生,使用设备的 UUID唯一表示进行挂载;

查看设备 UUID号

# blkid

# vim  /etc/fstab

RHEL7--第十七章-iSCSI 随笔 第10张

解析:

_netdev:表示设备需要网络才能连接;

 

 

 

 

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄