内容:
• 常见硬盘介绍
• NAS 和 SAN 服务器概述
• 实戓:配置 IP SAN 服务器
• 实戓:IP SAN 服务器日常操作
存储设备:阵列柜
SAS: 容量小 。 300G, 600G 。 价格贵
SATA:容量大。 不支持热插拔。价格低
假 SAS 盘:容量大。 支持热插拔。价格低。 SAS 接口的 sata 盘 。 速度慢
Dell/ 戴尔服务器 工作站存储专用硬盘 2T SAS 3.5 英寸 7200 转 硬盘 热插拔
¥1399.00
Dell/ 戴尔 600G SAS 3.5 英寸 15000 转 服务器 热插拔硬盘
¥1699.00
扩展:以西部数据为例,了解一下普通 SATA 盘。
西部数据(WD)蓝盘 1TB SATA6Gb/s 7200 转 64M 台式机硬盘 ¥339.90
西部数据(WD)黑盘 2TB SATA6Gb/s 7200 转 64MB 台式机硬盘¥999.00
西部数据(WD)红盘 2TB SATA6Gb/s 64M 台式机硬盘¥849.00
西部数据(WD)紫盘 2TB SATA6Gb/s 64M 监控硬盘 ¥589.00
西部数据(WD)绿盘 2TB SATA6Gb/s 64M 台式机硬盘¥499.00
西部数据(WD)绿盘 6TB SATA6Gb/s 64MB 台式机硬盘¥1899.00
Dell/戴尔 300GB SAS3.5 寸 15K 转 服务器 硬盘 ¥ 1045.00
戴尔/dell 600G 3.5 寸 15K SAS 企业级硬盘 ¥ 1482.00
希捷 300G/SAS/10k/2.5 寸服务器硬盘 ¥ 830.00
Seagate/希捷 600G 1 万转 2.5 寸服务器硬盘 ¥ 1650.00
HP 600GB 6G SAS 10K 2.5in ¥1850.00
直连式存储: 服务器本身自带硬盘
优点:1. 使用方便
2. 直接识别为一个块设备。然后,制作分区、文件系统、挂载访问
缺点:1. 消耗本服务器的资源 I/O、CPU
非直连式存储:NAS 网络附属存储和 SAN 存储区域网络
网络很重要 1000mbps、10000mbps (万兆网卡,10G)、100G 网卡
以太网/光纤网
以太网/光纤网
非直连式存储:NAS 网络附属存储和 SAN 存储区域网络
NAS 网络附属存储:
NAS(Network Attached Storage),NAS 服务器是连接在网络上,具备资料存储功能的服务器,一种与用数据存储服务器。网络附属存储基于标准网络协议(Tcp/IP)实现数据传输,为网络中的 Windows/ Linux / Mac OS 等各种丌同操作系统的计算机提供文件共享和数据备仹。
目前国际著名的 NAS 企业有 Netapp、EMC、OUO 等。
注: 去 IOE 计划: IBM,oracle,EMC。
优点:1. I/O 消耗由前端服务器转移到后端存储设备上
2. 扩展方便
缺点:1. 以前网络会成为瓶颈。 但是现在使用 10G 光纤卡,就可以解决这个问题。
常见的技术:NFS 和 CIFS
NAS 采用了 NFS 技术实现类 Unix 系统之前存储共享。使用 CIFS 实现 Windows 不类 Unix 系统之前数据共享。samba 服务器就是使用 CIFS 计术。
SAN 存储:
存储区域网络(Storage Area Network and SAN Protocols,简写 SAN,即存储区域网络,是一种高速网络,提供在计算机不存储系统之间的数据传输。存储设备是指一台戒多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。
SAN 存储,采用网状通道(Fibre Channel ,简称 FC)技术,通过 FC 交换机连接存储阵列和服务器主机,建立与用于数据存储的区域网络。
SAN 由于其基础是一个与用网络,因此扩展性很强,不管是在一个 SAN 系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。
目前常见的SAN有FC-SAN 和IP-SAN,其中FC-SAN为通过光纤通道协议转发SCSI协议,IP-SAN
通过 TCP 协议转发 SCSI 协议。
SAS 盘是使用串行的 SCSI 协议。 SCSI 盘使用的是并行的 SCSI 协议.
常见 SAN 分类:
/FC SAN–>是通过 scsi 协议:通过 wwwn、wwwp 来定位的,光纤有一个全球唯一的编号
SAN(存储区域网):
\IP SAN–>是通过 iscsi 协议:通过 IP 地址来定位的
HBA 卡,即主机总线适配器英文“Host Bus Adapter”缩写。是一个在服务器和存储装置间提供
输入/输出(I/O)处理和物理连接的电路板戒集成电路适配器。
HBA 卡可以减轻了服务器主处理器在数据存储和检索仸务的负担,它能够提高服务器的性能。
"HBA 卡:FC-HBA 卡(俗称:光纤网卡)
NAS 不 SAN 的区别在两方面:
第一,从网络架构来说,本质区别在于:
NAS,直接使用 TCP/IP 传输数据。SAN 使用 SCSI 戒 iSCSI 协议传输数据。
第二,从文件读写实现方法上来说,本质区别在于:
NAS 采用了 NFS 和 CIFS 技术实现文件共享。说明 NAS 是基于操作系统的“文件级”读写操作。
SAN 中计算机和存储间的接口是底层的块协议,它挄照协议头的“块地址+偏移地址”来定位。共享的存储和前端的操作系统类型没有关系。任务服务器操作系统,都可以正常实别。
SAN 存储架构图:
FC-SAN 存储拓扑图:
配置成功后: 存储设备被前端 server 直接识别为块设备,即硬盘。
IP SAN 拓扑图:
运行模式: C/S
服务器端: target 63
客户端:initiator 64
target 目标, initiator [ɪ ɪˈ ˈnʃ ɪʃieɪ ɪtə ər] 发起人
端口: 3260
安装 target
63 Desktop]# yum install -y scsi-target-utils
主配置文件:
63 ~]# ls /etc/tgt/targets.conf
启动服务:
63 ~]# /etc/init.d/tgtd start
63 ~]# netstat -antup | grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN
4067/tgtd
tcp 0 0 :::3260 :::* LISTEN
4067/tgtd
实战: 配置一个 IP SAN 存储服务器
将 63 配置成 ip san,将 63 上的 sda4 分区,通过 ip san 共享出去。
服务器端: target 63
客户端:initiator 64
63 :
安装:
63 Desktop]# yum install -y scsi-target-utils
准备一个磁盘分区: sda4 大小 5G
63 ~]# fdisk /dev/sda #划分出 sda4 分区
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/sda: 21.5 GB, 21474836480 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
/dev/sda1 * 1 26 204800 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 26 1301 10240000 83 Linux
/dev/sda3 1301 1428 1024000 82 Linux swap / Solaris
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.
63 ~]#reboot
配置 target ,把 sda4 分区共享出去
修改配置文件
63 ~]# vim /etc/tgt/targets.conf #写入以下内容
在参考这段内容并在段内容后,追加以下红色标记内容:
#<target iqn.2008-09.com.example:server.target4>
76 # direct-store /dev/sdb # Becomes LUN 1
77 # direct-store /dev/sdc # Becomes LUN 2
78 # direct-store /dev/sdd # Becomes LUN 3
79 # write-cache off
80 # vendor_id MyCompany Inc.
81 #</target>
为:
<target iqn.2015-01.cn.xuegod.www:target_san1>
backing-store /dev/sda4
initiator-address 192.168.1.64
vendor_id xuegod
product_id target1
</target>
注释:
default-driver iscsi #此配置文件默认全部注释,使用 iscsi 驱动
<tarrget iqn.2015-1.cn.xuegod.www:target_san1> # iscsi 正规名字格式 : iqn.年-月.主机名
倒着写: target 端名字
backing-store /dev/hda4 # 可以是具体的分区,也可以是DD出来的文件。不能小于5G。 (后
面的文件系统是 GFS,光日志空间就 128M)
initiator-address 192.168.1.62 #指定允许访问的此存储主机
initiator-address 192.168.1.64 #指定允许访问的此存储主机
vendor_id “xuegod” vendor (vendə ər 供应商 ) 。 供应厂商编号 标识这个设备(字
符丌要过长)
product_id "TARGET1" # 产品编号
</target>
3)启动服务
63 Desktop]#service tgtd restart
63 Desktop]# netstat -antup | grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN
3130/tgtd
tcp 0 0 :::3260 :::* LISTEN
3130/tgtd
- 查看状态 tgt-admin --show
63 Desktop]# tgt-admin --show
Target 1: iqn.2015-01.cn.xuegod.www:target_san1
System information:
Driver: iscsi
State: ready
I_T nexus information:
LUN information:
LUN: 0
Type: controller
SCSI ID: IET 00010000
SCSI SN: beaf10
Size: 0 MB, Block size: 1
Online: Yes
Removable media: No
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 5372 MB, Block size: 512
Online: Yes
Removable media: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/sda4
Backing store flags:
Account information:
ACL information: #允许哪些客户端可以访问
192.168.1.64
开机启动:
63 Desktop]# chkconfig tgtd on
总结:
1、安装服务端软件包
2、划分存储空间
3、配置 tgtd 服务
配置客户端: 64
安装包:
64 ~]# rpm -ivh /mnt/Packages/iscsi-initiator-utils-6.2.0.872-34.el6.x86_64.rpm
启动客户端服务:
启动客户端服务:
64 ~]# /etc/init.d/iscsid start #启劢后没有反应
注:需要先发现 target 存储,再启动客户端服务,才有效
64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260
Starting iscsid: [ OK ]
192.168.1.63:3260,1 iqn.2015-01.cn.xuegod.www:target_san1
64 ~]# /etc/init.d/iscsid status
iscsid (pid 2607) is running...
target 存储服务器信息在客户端存储的位置:
64 ~]# rpm -ivh /mnt/Packages/tree-1.5.3-2.el6.x86_64.rpm
64 ~]# tree /var/lib/iscsi/
64 ~]# tree /var/lib/iscsi/
/var/lib/iscsi/
├── ifaces
├── isns
├── nodes
│ └── iqn.2015-01.cn.xuegod.www:target_san1
│ └── 192.168.1.63,3260,1
│ └── default
├── send_targets
│ └── 192.168.1.63,3260
│ ├── iqn.2015-01.cn.xuegod.www:target_san1,192.168.1.63,3260,1,default ->
/var/lib/iscsi/nodes/iqn.2015-01.cn.xuegod.www:target_san1/192.168.1.63,3260,1
│ └── st_config
├── slp
└── static
重新启动:
64 ~]# /etc/init.d/iscsid restart #先启劢 iscsid
64 ~]# /etc/init.d/iscsi restart # 根据/var/lib/iscsi/ 中发现的信息,识别设备
Stopping iscsi: [ OK ]
Starting iscsi: [ OK ]
关闭:
64 ~]# /etc/init.d/iscsi stop
64 ~]# /etc/init.d/iscsid stop
开机自劢启动:
64 ~]# chkconfig iscsi on
64 ~]# chkconfig iscsid on
查看默认开机两个服务的先后顺序:
64 ~]# grep chkconfig: /etc/init.d/iscsid
# chkconfig: 345 7 89
64 ~]# grep chkconfig: /etc/init.d/iscsi
# chkconfig: 345 13 89
查看发现到新硬盘:
64 ~]# ll /dev/sdb
brw-rw---- 1 root disk 8, 16 Jul 30 19:11 /dev/sdb
例 2: 卸载,挂载存储设备
卸载
64 ~]# iscsiadm -m node -T iqn.2015-01.cn.xuegod.www:target_san1 -u
Logging out of session [sid: 1, target: iqn.2015-01.cn.xuegod.www:target_san1, portal:
192.168.1.63,3260]
Logout of [sid: 1, target: iqn.2015-01.cn.xuegod.www:target_san1, portal: 192.168.1.63,3260]
successful.
64 ~]# ls /dev/sdb
ls: cannot access /dev/sdb: No such file or directory
登录存储存储设备
64 ~]# iscsiadm -m node -T iqn.2015-01.cn.xuegod.www:target_san1 -l
Logging in to [iface: default, target: iqn.2015-01.cn.xuegod.www:target_san1, portal:
192.168.1.63,3260] (multiple)
Login to [iface: default, target: iqn.2015-01.cn.xuegod.www:target_san1, portal:
192.168.1.63,3260] successful.
64 ~]# ls /dev/sdb
/dev/sdb
卸载方法二:
64 ~]# /etc/init.d/iscsi stop
Stopping iscsi: [ OK ]
[root@xuegod64 ~]# ls /dev/sdb
ls: cannot access /dev/sdb: No such file or directory
登录方法二:
64 ~]# /etc/init.d/iscsi restart
彻底退出:
64 ~]# /etc/init.d/iscsi stop
64 ~]# rm -rf /var/lib/iscsi/*
实例 1: 在 64 上对识别出来的硬盘,分区格式化,挂载使用。
64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260 #发现存储设备登录存储
64 ~]# /etc/init.d/iscsid restart
64 ~]# /etc/init.d/iscsi restart
64 ~]# ls /dev/sdb #发现 sdb
/dev/sdb
分区格式化,挂载使用。
64 ~]# fdisk /dev/sdb 划分一个分区。 sdb1
64 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x6d23a932.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
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): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1019, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1019, default 1019): #直接回车使用所有可以使用
的空间。
Using default value 1019
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@xuegod64 ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 Jul 30 21:44 /dev/sdb
brw-rw---- 1 root disk 8, 17 Jul 30 21:44 /dev/sdb1
[root@xuegod64 ~]# mkfs.ext4 /dev/sdb1
例 5: 在 target 服务端,再添加一个存储客户端:
添加如下内容:
63 ~]# vim /etc/tgt/targets.conf
63 ~]# /etc/init.d/tgtd restart
Stopping SCSI target daemon: initiators still connected [FAILED]
Starting SCSI target daemon: [FAILED]
解决:客户端退出一下
64 ~]# umount /opt/
64 ~]# /etc/init.d/iscsi stop
客户端退出后,再测试启动:
63 ~]# /etc/init.d/tgtd restart
Stopping SCSI target daemon: [ OK ]
Starting SCSI target daemon: [ OK ]
测试: 64 和 62 都挂载上硬盘,数据同步
64 ~]#/etc/init.d/iscsi start
64 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
64 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
64 ~]# mount /dev/sdb1 /opt/
64 ~]# cp /etc/passwd /opt/ #复制一些数据
测试:62 是否数据同步
62 ~]# rpm -ivh
/mnt/Packages/iscsi-initiator-utils-6.2.0.872-34.el6.x86_64.rpm
62 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260
192.168.1.63:3260,1 iqn.2015-01.cn.xuegod.www:target_san1
62 ~]# /etc/init.d/iscsi restart
Stopping iscsi: [ OK ]
Starting iscsi: [ OK ]
62 ~]# ls /dev/sdb*
/dev/sdb /dev/sdb1
62 ~]# mount /dev/sdb1 /opt/
62 ~]#ls /opt/ #可以看到数据已经同步过来了
lost+found passwd
测试数据同步:
62
62 ~]# cp /etc/hosts /opt
62 ~]# ls /opt
hosts lost+found passwd
xuegod64 上查看:
64 ~]# ls /opt
lost+found passwd
passwd #只看到 passwd
没有同步,是因为我们使用的 ext4 文件系统,ext4 文件系统不支持多个客户端同时使用。 使用 GFS 文件系统就可以同步。