iscsi序列一、搭建iscsi存储系统
一、NAS和SAN服务器概述
SAS: 容量小, 300G, 600G, 900G, 价格贵。
SATA:容量大,500G, 750G, 1T, 2T, 3T, 4T 不支持热插拔,价格低。
假SAS盘:容量大, 支持热插拔,价格低, SAS接口的sata盘 , 速度慢 。
1.关于存储方式
1.直连式存储: 我们普通PC机就是直连存储,使用跳线和主板总线相连
优点:1. 使用方便
2. 直接识别为一个块设备。然后,制作分区、文件系统、挂载访问
缺点:1. 消耗本服务器的资源I/O、CPU
2.非直连式存储:NAS网络附属存储和SAN存储区域网络
网络性能很重要1000mbps、10000mbps (万兆网卡,10G)、100G网卡
以太网/光纤网 依赖网络, 网卡, 网线, ==> 网络
2.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光纤卡,就可以解决这个问题。
3.NAS常见的技术:NFS和CIFS
NAS采用了NFS技术实现类Unix系统之前存储共享。使用CIFS实现Windows与类Unix系统之前数据共享。samba 服务器就是使用CIFS计术。
4.SAN存储:
存储区域网络(Storage Area Network and SAN Protocols,简写SAN,即存储区域网络,是一种高速网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。
SAN存储,采用网状通道(Fibre Channel ,简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。
SAN由于其基础是一个专用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。
5.SAN的存储类型:
IPSAN: 不同的网络上, 使用TCP/IP协议的iscsi协议封装构件的存储区域网络
FSCAN: 利用光纤线, 通过高速FC交换机构件的存储区域网络,。(scsi协议)
6.NAS与SAN的区别在两方面:
第一,从网络架构来说,本质区别在于:
NAS,直接使用TCP/IP传输数据。SAN使用SCSI或iSCSI协议传输数据。
第二,从文件读写实现方法上来说,本质区别在于:
NAS采用了NFS和 CIFS技术实现文件共享。说明NAS是基于操作系统的“文件级”读写操作。
SAN中计算机和存储间的接口是底层的块协议,它按照协议头的“块地址+偏移地址”来定位。共享的存储和前端的操作系统类型没有关系,任何服务器操作系统,都可以正常识别。
7.SAN存储架构图:
配置成功后: 存储设备被前端server直接识别为块设备,即硬盘。
二、实战:配置一个IP SAN存储服务器
1. 拓扑图:
2. 环境搭建:
IP-SAN的运行模式: C/S模式, 工作端口3260
服务端:服务名-target xuegod63.cn(目标)
客户端:服务名-initator xuegod62.cn xuegod64.cn(发起人).
禁用防火墙 关闭selinux
3. xuegod63服务端的配置
安装target
[root@xuegod63 Desktop]# yum -y install targetcli
启动服务:
[root@xuegod63 ~]# systemctl start target
[root@xuegod63 ~]# netstat -antup | grep 3260 #没有配置前服务没起来
新建存储分区: sdb1 大小5G
[root@xuegod63 ~]# fdisk /dev/sdb #划分出sdb1分区
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 10 GB, 11474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b8b35
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Selected partition 4
First cylinder (1428-2610, default 1428):
Using default value 1428
Last cylinder, +cylinders or +size{K,M,G} (1428-2610, default 2610): +5G
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@xuegod63 ~]#reboot 或者 partx -a /dev/sdb #使分区生效,多执行几次即可
配置存储
[root@xuegod63 ~]# targetcli #进入交互配置
targetcli shell version 2.1.fb46
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/>help #可以使用help查看帮助文件
/>/backstores/block create sun1 /dev/sdb1 #建立一个块存储,其中sun1自定义名称
/>/iscsi create iqn.2018-04.cn.xuegod:server #配置ISCSITarget命名,注意:命名在同一子网内确保是唯一的,命名格式为:iqn.yyyy-mm.<主机名反写>:自定义名称(自定义名称内不能有下划线)
/> iscsi/iqn.2018-04.cn.xuegod:server/tpg1/acls/ create iqn.2018-04.cn.server:xugod62 #创建ACL允许ISCSI客户机连接
/> iscsi/iqn.2018-04.cn.xuegod:server/tpg1/luns/ create /backstores/block/sun1 #创建lun(target块设备的逻辑单元)
/> iscsi/iqn.2018-04.cn.xuegod:server/tpg1/portals create 192.168.2.63 #注:192.168.2.63为服务器IP;不指定端口默认为3260
/> iscsi/iqn.2018-04.cn.xuegod:server/tpg1/portals delete 0.0.0.0 #删除IP方法:portals delete 0.0.0.0 3260
配置验证用户名和密码(这一步可以省略)
/> cd iscsi/iqn.2018-04.cn.xuegod:server/tpg1/acls/iqn.2018-04.cn.server:xuegod64/ #cd到此客户目录下
/>set auth userid=test
/>set auth password=test
/> saveconfig #保存配置,退出也相应的进行保存配置
/>exit #退出
4. xuegod62服务端的配置
安装包:
[root@xuegod62 ~]# yum install -y iscsi-initiator-utils
启动iscsi服务
[root@xuegod62 ~]# systemctl start iscsi
设置开机启动服务
[root@xuegod62 ~]# systemctl enable iscsi
配置ISCSIInitiator名称
注:此处InitiatorName必须与服务端配置的ACL允许ISCSI客户机连接的名称一致。
[root@xuegod62 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-04.cn.server:xugod62
[root@xuegod62 ~]# vim /etc/iscsi/iscsid.conf #如果没有配置验证,这里不需要操作
重启服务
[root@xuegod62 ~]#systemctl restart iscsid
发现(查找)ISCSI设备
[root@xuegod62 ~]# iscsiadm -m discovery -t st -p 192.168.2.63
连接ISCSI设备
[root@xuegod62 ~]# iscsiadm -m node --login
查看系统磁盘信息
[root@xuegod62 ~]# ls /dev/sdb*
格式化挂载
[root@xuegod62 ~]# mkfs.xfs /dev/sdb
将共享磁盘挂载到指定目录
[root@xuegod62 ~]# mount /dev/sdb /opt
测试写文件
[root@xuegod62 ~]# echo aabbcc >/opt/a.txt
5. xuegod64服务端的配置
安装包:
[root@xuegod64 ~]# yum install -y iscsi-initiator-utils
启动iscsi服务
[root@xuegod64 ~]# systemctl start iscsi
设置开机启动服务
[root@xuegod64 ~]# systemctl enable iscsi
配置ISCSIInitiator名称
注:此处InitiatorName必须与服务端配置的ACL允许ISCSI客户机连接的名称一致。
需要重复上面第一次配置客户端方法 增加xuegod64客户
[root@xuegod64 ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2018-04.cn.server:xugod64
重启服务
[root@xuegod64 ~]#systemctl restart iscsid
发现(查找)ISCSI设备
[root@xuegod64 ~]# iscsiadm -m discovery -t st -p 192.168.2.63
连接ISCSI设备
[root@xuegod64 ~]# iscsiadm -m node --login
查看系统磁盘信息
[root@xuegod64 ~]# ls /dev/sdb*
将共享磁盘挂载到指定目录
[root@xuegod64 ~]# mount /dev/sdb /opt
查看文件
[root@xuegod64 ~]# cat /opt/a.txt
target存储服务器信息在客户端存储的位置:
[root@xuegod64 ~]# yum install -y tree #安装tree命令,用于查询树
[root@xuegod64 ~]# tree /var/lib/iscsi/ #发现target后,会在此目录先生成树结构
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│ └── iqn.2018-04.cn.xuegod:server
│ └── 192.168.2.63,3260,1
│ └── default
├── send_targets
│ └── 192.168.2.63,3260
│ ├── iqn.2018-04.cn.xuegod:server,192.168.2.63,3260,1,default -> /var/lib/iscsi/nodes/iqn.2018-04.cn.xuegod:server/192.168.2.63,3260,1
│ └── st_config
├── slp
└── static
7.测试: xuegod64 和xuegod62 都挂载上硬盘,数据同步 ?
[root@xuegod64 ~]# cp /etc/passwd /opt/ #复制一些数据
查看:xuegod62 是否数据同步
[root@xuegod62 ~]# ls /opt/
a.txt
没有看到passwd文件,添加新数据并没有同步
没有同步,是因为我们使用的XFS 文件系统,XFS文件系统不支持多个客户端同时使用。 使用GFS文件系统就可以同步。
相关连接: http://343614597.blog.51cto.com/7056394/1699563 //SAN+GFS 配置
三、排错
报错如下:
1. 无法发现设备
[root@mwdinit ~]# iscsiadm -m discovery –t st -p192.168.2.63
iscsiadm: cannot make connection to 192.168.2.63: Connectionrefused
iscsiadm: cannot make connection to 192.168.2.63: Connectionrefused
iscsiadm: connection login retries (reopen_max) 5 exceeded
iscsiadm: Could not perform SendTargets discovery: encounteredconnection failure
解决:因服务端未指定ip和端口, 重新指定
o- portals ..................................................................................[Portals: 1]
| o- 192.168.2.63:3260
2、客户端查找不到服务端的ISCSI设备
iscsiadm: Could not perform SendTargets discovery: encounteredconnection login failure
解决:
lsof -i:3260发现tgtd服务也启动了,这样与target服务共用了端口,把tgtd服务关掉并设置为开机不启动
停止:# systemctl stop tgtd
开机不启动:# systemctl disable tgtd
3、Could not create NetworkPortal in configFS
原因:发现
portals..................................................................................[Portals: 1]
| o- 0.0.0.0:3260
已经存在了一个IP和端口,需要删除
解决:/>cd /iscsi/ iqn.2018-04.cn.xuegod:server/tpg1/portals
/>/iscsi/iqn.20.../tpg1/portals> delete 0.0.0.0 3260
注:ip和端口之间有一个空格