一、 NAS和SAN服务器的概述
1、 NAS网络存储
NAS(Network Attached Storage),NAS服务器是连接在网络上,具备资料存储功能的服务器,一种专用数据存储服务器。网络附属存储基于标准网络协议(Tcp/IP)实现数据传输,为网络中的Windows / Linux / Mac OS 等各种不同操作系统的计算机提供文件共享和数据备份。部分NAS系统还可以支持FTP, HTTP, SQL SQLSERVER等等功能,比如说现在NAS品牌 群晖!
国内: 群晖Synology, 希捷, 西部数码, 威联通
国际: Netapp, OUO, Dell, EMC
专业开源NAS系统: freeNAS, nas4free, OpenMediaValut, [H群晖]
美国八大金刚: Cisco, IBM, Google, 高通, Intel, Apple, 甲骨文, Microsoft
去IOE计划: IBM[小型机],Oracle[DB],EMC[存储]
NAS优点:1. I/O消耗由前端服务器转移到后端存储设备上
2. 扩展方便
NAS缺点:1. 以前网络会成为瓶颈, 但是现在使用10G光纤卡,就可以解决这个问题。
NAS常见的技术:NFS和CIFS
NAS采用了NFS技术实现类Unix系统之前存储共享。使用CIFS实现Windows与类Unix系统之前数据共享。samba 服务器就是使用CIFS计术。
NAS就是一台服务器,把空间共享出来,如下图:
2、 SAN存储
存储区域网络(Storage Area Network and SAN Protocols,简写SAN,即存储区域网络,是一种高速网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。
SAN存储,采用网状通道(Fibre Channel ,简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。
SAN由于其基础是一个专用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。
SAN的存储类型:
IPSAN: 不同的网络上, 使用TCP/IP协议的iscsi协议封装构件的存储区域网络
FSCAN: 利用光纤线, 通过高速FC交换机构件的存储区域网络,。(scsi协议)
NAS与SAN的区别在两方面:
第一,从网络架构来说,本质区别在于:
NAS,直接使用TCP/IP传输数据。SAN使用SCSI或iSCSI协议传输数据。
第二,从文件读写实现方法上来说,本质区别在于:
NAS采用了NFS和 CIFS技术实现文件共享。说明NAS是基于操作系统的“文件级”读写操作。
SAN中计算机和存储间的接口是底层的块协议,它按照协议头的“块地址+偏移地址”来定位。共享的存储和前端的操作系统类型没有关系,任何服务器操作系统,都可以正常识别。如下图:
SAN存储架构图:
配置成功后: 存储设备被前端server直接识别为块设备,即硬盘。
二、 实战1:配置IP SAN服务器
1、 环境准备
IP-SAN的运行模式:C/S模式,工作端口3260
在xuegod120中添加一块硬盘,用来作为存储共享盘给xuegod130使用
2、 配置xuegod120为IP SAN存储服务器
1)安装target
[root@xuegod120 ~]# yum -y install targetcli
进入交互配置
[root@xuegod120 ~]# targetcli
3)使用/dev/sdb创建块存储对象sun1,sun1是自定义名称
/> cd /backstores/block
/backstores/block> create sun1 /dev/sdb
Created block storage object sun1 using /dev/sdb.
4)创建ISCSI Target,注意:target命名在同一子网内确保是唯一的。命名格式为:iqn.yyyy-mm.<主机名反写>:自定义名称(自定义名称不能有下划线)
/backstores/block> cd /iscsi
/iscsi> create iqn.2019-07.cn.xuegod.server
Created target iqn.2019-07.cn.xuegod.server.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260.
5)为InitiatorNmae创建一个名字为:iqn.2019-07.cn.xuegod:xuegod120的ACL访问控制列表。
也就是客户端名字在为iqn.2019-07.cn.xuegod:xuegod120才可以连接target存储
/iscsi> cd /iscsi/iqn.2019-07.cn.xuegod.server/tpg1/acls
/iscsi/iqn.20…ver/tpg1/acls> create iqn.2019-07.cn.xuegod:xuegod120
Created Node ACL for iqn.2019-07.cn.xuegod:xuegod120
6)指定块存储对象/backstores/block/sun1为target的逻辑单元号LUN0
/iscsi/iqn.20…ver/tpg1/acls> cd /
/> cd /iscsi/iqn.2019-07.cn.xuegod.server/tpg1/luns
/iscsi/iqn.20…ver/tpg1/luns> create /backstores/block/sun1
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2019-07.cn.xuegod:xuegod120
扩展:
LUN概述:LUN的全称是Logical Unit Number,也就是逻辑单元号,是SCSI中的概念。块存储对象只要一加入target存储系统,就分有一个代号,后期在区别块设备的时候,只要说target 中LUN几号就可以了。 块存储对象被指定了一个LUN后,成为了一个“逻辑”磁盘,供存储客户端使用。
7)指定新的监听地址和端口号
先删除原来的默认监听端口0.0.0.0
/iscsi/iqn.20…ver/tpg1/luns> cd …/portals/
/iscsi/iqn.20…/tpg1/portals> delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/iscsi/iqn.20…/tpg1/portals> create 192.168.0.120 3260
Using default IP port 3260
Created network portal 192.168.0.120:3260.
/iscsi/iqn.20…/tpg1/portals> ls
o- portals … [Portals: 1]
o- 192.168.0.120:3260 … [OK] #创建OK
/iscsi/iqn.20…/tpg1/portals>
8)配置验证用户名和密码
/> cd iscsi/iqn.2019-07.cn.xuegod.server/tpg1/acls/iqn.2019-07.cn.xuegod:xuegod120/
/iscsi/iqn.20…god:xuegod120> set auth userid=admin
Parameter userid is now ‘admin’.
/iscsi/iqn.20…god:xuegod120> set auth password=123456
Parameter password is now ‘123456’.
/iscsi/iqn.20…god:xuegod120>
9)退出,保存
/iscsi/iqn.20…god:xuegod120> 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
10)启动target服务
[root@xuegod120 ~]# systemctl start target
[root@xuegod120 ~]# systemctl enable target
[root@xuegod120 ~]# netstat -antup | grep 3260
tcp 0 0 192.168.0.120:3260 0.0.0.0:* LISTEN -
三、 实战2:IP SAN服务器日常操作
1、 配置xuegod130客户端
1) 安装iscsi
[root@xuegod130 ~]# yum -y install iscsi-initiator-utils
2) 配置ISCSI Initiator名称
[root@xuegod130 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-07.cn.xuegod:xuegod120 #=后面的名称必须和存储服务器配置相同
3) 添加验证用户名和密码
[root@xuegod130 ~]# vim /etc/iscsi/iscsid.conf
改:57 #node.session.auth.authmethod = CHAP
为:57 node.session.auth.authmethod = CHAP #删除前面的#号,取消注释
改:
61 #node.session.auth.username = username
62 #node.session.auth.password = password
为:
61 node.session.auth.username = admin
62 node.session.auth.password = 123456
4) 重启iscsid服务
[root@xuegod130 ~]# systemctl restart iscsid
5) 发现设备
[root@xuegod130 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.120
192.168.0.120:3260,1 iqn.2019-07.cn.xuegod.server
6) 登录到iscsi设备
[root@xuegod130 ~]# iscsiadm -m node –login
8) 格式化识别的硬盘/dev/sdb
这里如果再存储服务器上已经格式化,就不需要再次格式化
9) 挂载磁盘
[root@xuegod130 ~]# mount /dev/sdb /opt
10) 写入数据测试
[root@xuegod130 ~]# cd /opt/
[root@xuegod130 opt]# echo aabbcc > a.txt
[root@xuegod130 opt]# cat a.txt
aabbcc
2、 配置另外一台客户端连接target
IP地址:192.168.0.140 主机:xuegod140 作用:iscsi客户单
1) 安装iscsi
[root@xuegod140 ~]# yum -y install iscsi-initiator-utils
2) 配置连接存储服务器的名称和认证用户密码
因为配置一样,这里不再详细写,直接将xuegod130的配置文件传递到xuegod140中使用
[root@xuegod130 opt]# scp /etc/iscsi/initiatorname.iscsi 192.168.0.140:/etc/iscsi
[root@xuegod130 opt]# scp /etc/iscsi/iscsid.conf 192.168.0.140:/etc/iscsi/
3) 重启iscsid服务
[root@xuegod140 ~]# systemctl restart iscsi
[root@xuegod140 ~]# systemctl restart iscsid
4) 发现设备
[root@xuegod140 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.120
192.168.0.120:3260,1 iqn.2019-07.cn.xuegod.server
5) 登录设备
[root@xuegod140 ~]# iscsiadm -m node -l
7) 挂载硬盘
这里不用再次格式化,因为在xuegod130上已经格式化过,直接挂载即可
[root@xuegod140 ~]# mount /dev/sdb /opt
8) 写入数据测试
可以看到xuegod130上写入的数据,在xuegod140上可以显示
重新写入数据
[root@xuegod140 opt]# touch b.txt
[root@xuegod140 opt]# ll
total 4
-rw-r–r-- 1 root root 7 Jul 20 09:31 a.txt
-rw-r–r-- 1 root root 0 Jul 20 09:39 b.txt
原因:因为我们使用的XFS 文件系统,XFS文件系统不支持多个客户端同时使用。 后期使用时,可以把sdb在xuegod64上识别出来后,挂载到/opt目录下,然后在xuegod64安装一个nfs服务器,把/opt目录共享给xuegod62使用,这样就可以保障数据同步了。