暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

第30篇 集群架构-ISCSI块存储服务

运维大叔 2021-06-07
1105

1.iSCSI技术介绍2.配置iSCSI服务端3.配置Linux客户端4.配置Win客户端

1.iSCSI技术介绍

为了进一步提升硬盘存储设备的读写速度和性能,人们一直在努力改进物理硬盘设备的接口协议。当前的硬盘接口类型主要有IDE、SCSI和SATA这3种。

  • IDE是一种成熟稳定、价格便宜的并行传输接口。

  • SATA是一种传输速度更快、数据校验更完整的串行传输接口。

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

iSCSI技术在工作形式上分为服务端target与客户端initiator
iSCSI服务端即用于存放硬盘存储资源的服务器
iSCSI客户端则是用户使用的软件,用于访问远程服务端的存储资源。

2.配置iSCSI服务端

1.安装iscsi服务

1[root@iscsi-server ~]# yum install targetd targetcli -y
2//启动ISCSI服务端程序targetd, 并加入开机自启
3[root@iscsi-server ~]# systemctl start targetd
4[root@iscsi-server ~]# systemctl enable targetd

2.配置iSCSI服务共享资源
targetcli是用于管理iSCSI服务端存储资源的配置命令,将iSCSI共享资源的配置内容抽象成“目录”的形式, 我们只需将各类配置信息填入到相应的“目录”中即可。

 1[root@linux-node1 ~]# targetcli
2targetcli shell version 2.1.fb46
3Copyright 2011-2013 by Datera, Inc and others.
4For help on commands, type 'help'.
5/> cd backstores/block
6/backstores/block>'create disk0 /dev/sdb'
7Created block storage object disk0 using /dev/sdb.
8/backstores/block> cd /
9/> ls
10o- / ..................................................................... [...]
11  o- backstores .......................................................... [...]
12  | o- block .............................................. [Storage Objects: 1]
13  | | o- disk0 ..................... [/dev/sdb (20.0GiB) write-thru deactivated]
14  | |   o- alua ............................................... [ALUA Groups: 1]
15  | |     o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
16  | o- fileio ............................................. [Storage Objects: 0]
17  | o- pscsi .............................................. [Storage Objects: 0]
18  | o- ramdisk ............................................ [Storage Objects: 0]
19  o- iscsi ........................................................ [Targets: 0]
20  o- loopback ..................................................... [Targets: 0]

3.创建iSCSI target名称及配置共享资源
iSCSI target名称是由系统自动生成,用于描述共享资源的唯一字符串。
客户端在扫描iSCSI服务端时即可看见该字符串,因此我们无需记忆该字符串。
系统在生成这个target名称后,还会在/iscsi参数目录中创建一个与其字符串同名的新“目录”用来存放共享资源。

 1//将之前ISCSI共享资源池中硬盘添加至/iscsi目录
2/> cd iscsi
3/iscsi> create
4Created target iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73.
5Created TPG 1.
6Global pref auto_add_default_portal=true
7Created default portal listening on all IPs (0.0.0.0), port 3260.
8//
9/iscsi> cd iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73/tpg1/luns
10//
11/iscsi/iqn.20...a73/tpg1/luns> create /backstores/block/disk0
12Created LUN 0.

4.设置访问控制列表(ACL)
iSCSI协议是通过客户端名称进行验证, 用户在访问存储共享资源时不需要输入密码,只要iSCSI客户端的名称与服务端中设置的访问控制列表中某一名称条目一致即可

acls参数目录用于存放能够访问iSCSI服务端共享存储资源的客户端名称。

1/iscsi/iqn.20...a9756a73/tpg1> cd acls
2/iscsi/iqn.20...a73/tpg1/acls> create iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73:client

5.设置iSCSI服务端的监听IP地址和端口号

1/iscsi/iqn.20...d80/tpg1/acls> cd ..
2/iscsi/iqn.20...c356ad80/tpg1> cd portals 
3/iscsi/iqn.20.../tpg1/portals> create 192.168.56.11
4Using default IP port 3260

6.配置后检查配置信息,重启iSCSI服务端程序并配置防火墙策略。

 1/iscsi/iqn.20.../tpg1/portals> cd /
2/> ls
3o- / ..................................................................... [...]
4  o- backstores .......................................................... [...]
5  | o- block .............................................. [Storage Objects: 1]
6  | | o- disk0 ....................... [/dev/sdb (20.0GiB) write-thru activated]
7  | |   o- alua ............................................... [ALUA Groups: 1]
8  | |     o- default_tg_pt_gp ................... [ALUA state: Active/optimized]
9  | o- fileio ............................................. [Storage Objects: 0]
10  | o- pscsi .............................................. [Storage Objects: 0]
11  | o- ramdisk ............................................ [Storage Objects: 0]
12  o- iscsi ........................................................ [Targets: 1]
13  | o- iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73 . [TPGs: 1]
14  |   o- tpg1 ........................................... [no-gen-acls, no-auth]
15  |     o- acls ...................................................... [ACLs: 1]
16  |     | o- iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73:client  [Mapped LUNs: 1]
17  |     |   o- mapped_lun0 ............................. [lun0 block/disk0 (rw)]
18  |     o- luns ...................................................... [LUNs: 1]
19  |     | o- lun0 .................. [block/disk0 (/dev/sdb) (default_tg_pt_gp)]
20  |     o- portals ................................................ [Portals: 1]
21  |       o- 0.0.0.0:3260 ................................................. [OK]
22  o- loopback ..................................................... [Targets: 0]
23//保存配置
24/> saveconfig
25//注意:不要使用ctrl+c结束该进程
26/> exit
27//重启targetd服务, 并配置firewalld防火墙
28[root@liyanzhao ~]# systemctl restart targetd
29[root@liyanzhao ~]# firewall-cmd --permanent --add-port=3260/tcp
30firsuccess
31[root@linux-node1 ~]# firewall-cmd --reload
32success

3.配置Linux客户端

1.安装iSCSI客户端服务程序initiator

1yum install iscsi-initiator-utils

2.编辑iSCSI客户端中的initiator名称文件,将服务端的访问控制列表名称填写进来

1[root@liyanzhao ~]# cat /etc/iscsi/initiatorname.iscsi
2InitiatorName=iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73:client

3.重启客户端iscsid服务程序并将其加入开机自启动

1[root@liyanzhao ~]# systemctl restart iscsid
2[root@liyanzhao ~]# systemctl enable iscsid

4.iSCSI客户端访问并使用共享存储资源的步骤很简单, 发现, 登录, 挂载, 使用

iscsiadm是用于管理、查询、插入、更新或删除iSCSI数据库配置文件的命令行工具
扫描远程ISCSI服务端共享存储资源
-m discovery 扫描并发现可用的存储资源
-t st 执行扫描操作的类型
-p 指定iSCSI服务端的IP地址

1[root@liyanzhao ~]# iscsiadm -m discovery -t st -p 192.168.56.11
2192.168.56.11:3260,1 iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73

5.iscsiadm命令发现远程服务器上可用的存储资源后,然后使用iscsiadm登陆ISCSI服务端

-m node参数为将客户端所在主机作为一台节点服务器
-T  参数为要使用的存储资源(直接复制前面命令中扫描发现的结果,以免录入错误)
-p 192.168.10.10参数依然为对方iSCSI服务端的IP地址
--login或-l参数进行登录验证

1[root@liyanzhao ~]# iscsiadm -m node \
2-T iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73 \
3-p 192.168.56.11 --login

6.iSCSI客户端成功登录之后, 会在客户端主机上多出一块名为/dev/sd[x]的设备文件, 进行格式化挂载即可

 1//查看当前磁盘
2[root@liyanzhao ~]# lsblk
3//格式化并挂载
4[root@liyanzhao ~]# mkfs.xfs /dev/sdb
5[root@liyanzhao ~]# mkdir /iscsi
6[root@liyanzhao ~]# mount /dev/sdc /iscsi/
7//开机自动挂载
8[root@liyanzhao ~]# blkid | grep /dev/sdb
9/dev/sdc: UUID="0b5f71ea-90f9-45c5-a7cb-6a22f5460a67" TYPE="xfs"
10[root@liyanzhao ~]# tail -n1 /etc/fstab
11UUID=0b5f71ea-90f9-45c5-a7cb-6a22f5460a67   /iscsi  xfs defaults    0 0

7.卸载iSCSI共享设备资源-u参数进行卸载

1[root@liyanzhao ~]# iscsiadm -m node \
2-T iqn.2003-01.org.linux-iscsi.linux-node1.x8664:sn.9eaea9756a73 -u

4.配置Win客户端

使用Windows系统的客户端也可以正常访问iSCSI服务器上的共享存储资源,而且操作原理及步骤与Linux系统的客户端基本相同。

1.运行iSCSI发起程序。在Windows 7操作系统中已经默认安装了iSCSI客户端程序,我们只需在控制面板中找到“系统和安全”标签,然后单击“管理工具”,如图1-1所示

图1-1 在控制面板中单击“管理工具”
进入到“管理工具”双击“iSCSI发起程序”, 在第一次运行iSCSI发起程序时,系统会提示Microsoft iSCSI服务端未运行,单击“是”按钮即可自动启动并运行iSCSI发起程序,如图1-2所示

图1-2 双击“iSCSI发起程序”图标
2.必须先扫描发现iSCSI服务端上可用的存储资源。
在ISCSI发起程序的目标窗口栏写入ISCSI服务端的IP地址, 单击快速链接, 如图1-3

图1-3 填写iSCSI服务端的IP地址

在弹出的“快速连接”提示框中可看到共享的硬盘存储资源,单击“完成”按钮即可,如图1-4所示。

图1-4 在“快速连接”提示框中看到的共享的硬盘存储资源
回到“目标”选项卡页面,可以看到共享存储资源的名称已经出现,如图1-5所示。

图1-5 在“目标”选项卡中看到了共享存储资源
3.由于在iSCSI服务端程序上设置了ACL使得只有客户端名称与ACL策略中的名称保持一致时才能使用远程存储资源,因此需要在“配置”选项卡中单击“更改”按钮,把iSCSI发起程序的名称修改为服务端, 如图1-6

图1-6 修改iSCSI发起程序的名称

在确认客户端发起程序的名称修改正确后即可返回到“目标”选项卡页面中,然后单击“连接”按钮进行连接请求,成功连接到远程共享存储资源的页面如图1-7所示。

图1-7 成功连接到远程共享存储资源
4.访问iSCSI远程共享存储资源。右键单击桌面上的“计算机”图标,打开计算机管理程序,如图1-8所示。

图1-8 计算机管理程序的界面
5.对磁盘进行初始化操作,如图1-9至1-16所示。

图1-9 对磁盘设备进行初始化操作

图1-10 开始使用“新建简单卷向导”

图1-11 对磁盘设备进行分区操作

图1-12 设置系统中显示的盘符

图1-13 设置磁盘设备的格式以及卷标

图1-14 检查磁盘初始化信息是否正确

图1-15 等待磁盘设备初始化过程结束

图1-16 磁盘初始化完毕后弹出设备图标



<关注下方公众号系列好文持续推送>



文章转载自运维大叔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论