转发:https://www.cnblogs.com/diantong/p/11362875.html 苦逼运维博客,谢谢分享
(1).DAS、SAN、NAS三种存储方式
参考:https://blog.csdn.net/qq_23348071/article/details/73963407
DAS全称Direct-Attached Storage,中文名直连式存储,是一种计算机存储,它直接连接到某台计算机且其他计算机无法获取。对于个人计算机用户来说,硬盘驱动器就是直连式存储的常见形式。在企业中,服务器里的个体磁盘被称为直连式存储,作为服务器外(但可通过SCSI、SATA及SAS接口直接连在一起)的驱动组。因为服务器无需通过网络来读写数据,所以DAS能为终端用户提供比网络存储更高的性能。这也就是企业常为其有高性能需求的特定类型的应用采用DAS的原因。直连式存储的主要替代选择是网络附属存储(NAS)以及存储区域网络(SAN)。
DAS优点:使用方便,直接识别为一个块设备。
DAS缺点:消耗I/O和CPU。
NAS全称Network Attached Storage,中文名网络附属存储。NAS服务器是连接在网络上,具备资料存储功能的服务器,一种专用数据存储服务器。网络附属存储基于标准网络协议(TCP/IP)实现数据传输,为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份。部分NAS系统还可以支持FTP、HTTP、SQL、SQLSERVER等等功能,例如群晖。NAS采用NFS技术实现类Unix系统之间存储共享,采用CIFS技术实现Windows与类Unix系统之间数据共享。Samba软件就是使用的CIFS技术。
国内做NAS的有群晖、希捷、西部数码、威联通;国际上做NAS的有Netapp、OUO、Dell、EMC。专业开源NAS系统:freeNAS、nas4free、OpenMediaValut、群晖。
NAS优点:I/O消耗由前端服务器转移到后端存储设备上,并且扩展方便。
NAS缺点:以前网络会成为瓶颈, 但是现在使用10G光纤卡,就可以解决这个问题。
SAN全称Storage Area Network and SAN Protocols,中文名存储区域网络。SAN是一种高速网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。其采用网状通道(Fibre Channel,简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。SAN存储由于其基础是一个专用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。
目前常见的SAN有FC-SAN和IP-SAN(又称之为ISCSI,Internet小型计算机系统接口),其中FC-SAN通过光纤通道协议转发SCSI协议,IP-SAN通过TCP协议转发SCSI协议。
NAS和SAN的区别:第一,网络架构。NAS直接使用TCP/IP传输数据,而SAN使用SCSI或ISCSI协议传输数据。第二,文件读写的实现方式。NAS采用了NFS和CIFS技术实现文件共享,说明NAS是基于操作系统的“文件级”读写操作。而SAN中计算机和存储间的接口是底层的块协议,按照协议头的“块地址+偏移地址”来定位,共享的存储和前段的操作系统类型没有关系,任何操作系统都可以正常识别。
(2).配置IP-SAN服务器
1)实验环境
youxi1 192.168.5.101 服务端,添加一块盘sdb作为共享盘
youxi2 192.168.5.102 客户端
youxi3 192.168.5.103 客户端
IP-SAN以C/S模式运行,默认端口3260。
2)配置youxi1为IP-SAN存储服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[root@youxi1 ~]# yum -y install targetcli //安装target [root@youxi1 ~]# targetcli //进入交互界面进行配置 Warning: Could not load preferences file /root/.targetcli/prefs.bin. targetcli shell version 2.1.fb46 Copyright 2011-2013 by Datera, Inc and others. For help on commands, type 'help' . //可以使用help查看帮助文档 /> /backstores/block create test1 /dev/sdb //使用/dev/sdb创建块存储对象test1,其中test1是自定义名称 Created block storage object test1 using /dev/sdb. /> /iscsi create iqn.2019-08.youxi1:server //创建ISCSI target,target命名在同一子网内确保唯一。 WWN not valid as : iqn, naa, eui //报错了 /> /iscsi create iqn.2019-08.com.youxi1:server //命名格式:iqn.yyyy.mm.<主机名(域名)反写>:自定义名称。自定义名称内不能有下划线 Created target iqn.2019-08.com.youxi1:server. Created TPG 1. Global pref auto_add_default_portal= true Created default portal listening on all IPs (0.0.0.0), port 3260. //可以看到监听的IP地址和端口号 /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/acls create iqn.2019-08.com.youxi1:username Created Node ACL for iqn.2019-08.com.youxi1:username //创建ACL规则列表,也就是客户端只能使用规则列表内的用户才可以连接target存储 /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/luns create /backstores/block/test1 指定块存储对象test1为target的逻辑单元,逻辑单元号LUN0 Created LUN 0. Created LUN 0->0 mapping in node ACL iqn.2019-08.com.youxi1:username /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/portals/ delete 0.0.0.0 3260 //删除原本监听的IP地址和端口号 Deleted network portal 0.0.0.0:3260 /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/portals create 192.168.5.101 3260 //添加一个新的监听IP地址和端口号 Using default IP port 3260 Created network portal 192.168.5.101:3260. //注意:监控服务器端的本地IP地址和端口 |
LUN全称Logical Unit Number,中文名逻辑单元号,是SCSI中的概念。块存储对象只要一加入target存储系统,就分有一个代号,后期在区别块设备的时候,只要说target 中LUN几号就可以了。 块存储对象被指定了一个LUN后,成为了一个“逻辑”磁盘,供存储客户端使用。
3)配置ACL规则列表的用户名和密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/> cd /iscsi/iqn.2019-08.com.youxi1:server/tpg1/acls/iqn.2019-08.com.youxi1:username/ /iscsi/iqn.20...uxi1:username> set auth userid=admin //创建用户 Parameter userid is now 'admin' . /iscsi/iqn.20...uxi1:username> set auth password=123456 //设置密码 Parameter password is now '123456' . /iscsi/iqn.20...uxi1:username> saveconfig //保存必须在根目录下执行,否则报错 Command not found saveconfig /iscsi/iqn.20...uxi1:username> cd / //回到根目录 /> saveconfig //保存 Configuration saved to /etc/target/saveconfig.json /> exit //退出 Global pref auto_save_on_exit= true Last 10 configs saved in /etc/target/backup/. Configuration saved to /etc/target/saveconfig.json |
4)启动target服务
1
2
3
4
5
6
|
[root@youxi1 ~]# systemctl start target && systemctl enable target //启动并设置开机自启 Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service. [root@youxi1 ~]# firewall-cmd --permanent --zone= public --add-port=3260/tcp //添加端口号 success [root@youxi1 ~]# firewall-cmd --reload success |
(3).客户端配置
1)配置客户端youxi2
安装客户端并进行配置
1
2
3
4
5
6
7
8
|
[root@youxi2 ~]# yum -y install iscsi-initiator-utils [root@youxi2 ~]# vim /etc/iscsi/initiatorname.iscsi //修改发起者配置,也就是服务端的ACL规则名称 InitiatorName=iqn.2019-08.com.youxi1:username //修改为服务端的ACL规则列表名称 [root@youxi2 ~]# vim /etc/iscsi/iscsid.conf node.session.auth.authmethod = CHAP //第57行,取消注释 node.session.auth.username = admin //第61行,取消注释,并修改为ACL规则列表内的用户名 node.session.auth.password = 123456 //第62行,取消注释,并修改为对应用户名的密码 [root@youxi2 ~]# systemctl start iscsid |
发现ISCSI设备并登录
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@youxi2 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.5.101 //查找设备 192.168.5.101:3260,1 iqn.2019-08.com.youxi1:server //登录方法一 [root@youxi2 ~]# iscsiadm -m node -l //登录设备 Logging in to [iface: default , target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] (multiple) Login to [iface: default , target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] successful. [root@youxi2 ~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb //登录方法二 [root@youxi2 ~]# systemctl restart iscsid //在查找到设备后直接重启也可以 [root@youxi2 ~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb |
查看target存储服务器信息在客户端存储的位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
[root@youxi2 ~]# yum -y install tree [root@youxi2 ~]# tree / var /lib/iscsi/ / var /lib/iscsi/ ├── ifaces ├── isns ├── nodes │ └── iqn.2019-08.com.youxi1:server │ └── 192.168.5.101,3260,1 │ └── default ├── send_targets │ └── 192.168.5.101,3260 │ ├── iqn.2019-08.com.youxi1:server,192.168.5.101,3260,1, default -> / var /lib/iscsi/nodes/iqn.2019-08.com.youxi1:server/192.168.5.101,3260,1 │ └── st_config ├── slp └── static 10 directories, 2 file |
格式化硬盘(只有第一个需要格式化),挂载使用
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@youxi2 ~]# mkfs.xfs /dev/sdb meta-data=/dev/sdb isize=512 agcount=4, agsize=1310720 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=5242880, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log = internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none [root@youxi2 ~]# mkdir /share [root@youxi2 ~]# mount /dev/sdb /share [root@youxi2 ~]# echo youxi2 > /share/a.txt |
2)配置客户端youxi3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[root@youxi3 ~]# yum -y install iscsi-initiator-utils [root@youxi3 ~]# vim /etc/iscsi/initiatorname.iscsi InitiatorName=iqn.2019-08.com.youxi1:username [root@youxi3 ~]# vim /etc/iscsi/iscsid.conf node.session.auth.authmethod = CHAP //第57行,取消注释 node.session.auth.username = admin //第61行,取消注释,并修改为ACL规则列表内的用户名 node.session.auth.password = 123456 //第62行,取消注释,并修改为对应用户名的密码 [root@youxi3 ~]# systemctl restart iscsid [root@youxi3 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.5.101 //查找设备 192.168.5.101:3260,1 iqn.2019-08.com.youxi1:server [root@youxi3 ~]# iscsiadm -m node -l //登录设备 Logging in to [iface: default , target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] (multiple) Login to [iface: default , target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] successful. [root@youxi3 ~]# ls /dev/sd* /dev/sda /dev/sda1 /dev/sda2 /dev/sdb [root@youxi3 ~]# mkdir /share [root@youxi3 ~]# mount /dev/sdb /share/ //挂载 [root@youxi3 ~]# ls /share/ a.txt |
注意:此时不会同步,是因为我们使用的XFS文件系统,XFS文件系统不支持多个客户端同时使用。 后期使用时,可以把sdb在youxi2上识别出来后,挂载到/share目录下,然后在youxi2安装一个nfs服务器,把/share目录共享给youxi3使用,这样就可以保障数据同步了。