【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统

本节内容:

•常见硬盘介绍
•NAS和SAN服务器概述
•实战:配置IP SAN服务器
•实战:IP SAN服务器日常操作

存储设备:阵列柜
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第1张图片

【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第2张图片
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第3张图片
SAS:

 容量小, 300G, 600G, 900G, 价格贵。

SATA:

容量大,500G, 750G, 1T, 2T, 3T, 4T   不支持热插拔,价格低。

假SAS盘:

容量大, 支持热插拔,价格低, SAS接口的sata盘 ,  速度慢 。

【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第4张图片
SAS接口和SATA接口区分:
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第5张图片

SAS接口:
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第6张图片
硬盘托架: 方便热插拔:
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第7张图片

扩展:以西部数据为例,了解一下普通SATA盘。

【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第8张图片

关于存储方式

1.直连式存储:
我们普通PC机就是直连存储,使用跳线和主板总线相连
优点:

使用方便
直接识别为一个块设备。然后,制作分区、文件系统、挂载访问

缺点:

消耗本服务器的资源I/O、CPU

2.非直连式存储:

NAS网络附属存储和SAN存储区域网络
网络性能很重要1000mbps、10000mbps (万兆网卡,10G)、100G网卡
以太网/光纤网  依赖网络, 网卡, 网线, ==> 网络

以太网/光纤网 一般用于服务器,高端计算机网络项目 (HBA卡):
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第9张图片
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第10张图片

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优点:

 I/O消耗由前端服务器转移到后端存储设备上
 扩展方便

NAS缺点:

以前网络会成为瓶颈, 但是现在使用10G光纤卡,就可以解决这个问题

NAS常见的技术: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的存储类型:

IPSAN: 不同的网络上, 使用TCP/IP协议的iscsi协议封装构件的存储区域网络
FSCAN: 利用光纤线, 通过高速FC交换机构件的存储区域网络,。(scsi协议)

NAS与SAN的区别在两方面:
第一,从网络架构来说,本质区别在于:

NAS,直接使用TCP/IP传输数据。SAN使用SCSI或iSCSI协议传输数据。

第二,从文件读写实现方法上来说,本质区别在于:

NAS采用了NFS和 CIFS技术实现文件共享。说明NAS是基于操作系统的“文件级”读写操作。
SAN中计算机和存储间的接口是底层的块协议,它按照协议头的“块地址+偏移地址”来定位。共享的存储和前端的操作系统类型没有关系,任何服务器操作系统,都可以正常识别。

SAN存储架构图:
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第11张图片
配置成功后: 存储设备被前端server直接识别为块设备,即硬盘。

IP SAN 拓扑图:
【Linux云计算架构:第三阶段-Linux高级运维架构】第7章——搭建iscsi存储系统_第12张图片

实战: 配置一个IP SAN 存储服务器

IP-SAN的运行模式:C/S模式,工作端口3260
服务端:服务名-target XueGod63.cn(目标)
客户端:服务名-initator XueGod62.cn XueGod64.cn(发起人).

安装target

[root@xuegod63 Desktop]# yum install -y scsi-target-utils

主配置文件:

[root@xuegod63 ~]# ls  /etc/tgt/targets.conf

启动服务:

[root@xuegod63 ~]# /etc/init.d/tgtd start
[root@xuegod63 ~]# netstat -antup | grep 3260

新建存储分区: sda4 大小5G

[root@xuegod63 ~]# 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.

[root@xuegod63 ~]#reboot  或者   partx -a /dev/sda  #使分区生效,多执行几次即可

配置sda4共享
修改配置文件 :

[root@xuegod63 ~]# vim /etc/tgt/targets.conf       #写入以下内容

下面这段内容是参考模板

 75 #
 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 #

在上面模版后面新增内容为:

注释:

default-driver iscsi      #此配置文件默认全部注释,使用iscsi驱动   
  # 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是供应厂商编号标识这个设备(字符不要过长)
    product_id "TARGET1"     # 产品编号

启动服务

[root@xuegod63 Desktop]# systemctl restart tgtd 
[root@xuegod63 Desktop]# netstat  -antup | grep 3260或者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

配置客户端: xuegod64
安装包:

[root@xuegod64 ~]# yum install -y iscsi-initiator-utils

启动客户端服务:

[root@xuegod64 ~]# systemctl start iscsid #直接启动没有任何反应, 这里首先要发现target存储,再启动客户端服务,才有效
[root@xuegod64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260
Starting iscsid:                                           [  OK  ]
192.168.1.63:3260,1 iqn.2018-01.cn.xuegod.www:target_san1

[root@xuegod64 ~]#  /etc/init.d/iscsid status
iscsid (pid  2607) is running...

target存储服务器信息在客户端存储的位置:

[root@xuegod64 ~]# yum install -y tree	#安装tree命令,用于查询树
[root@xuegod64~]# tree /var/lib/iscsi/	#发现target后,会在此目录先生成树结构
/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

客户端服务启动关系
先启动iscsid,再启动iscsi,iscsi是根据/var/lib/iscsi/中发现的信息,识别设备

[root@xuegod64 ~]#systemctl start iscsid  #先启动iscsid
[root@xuegod64 ~]# systemctl start iscsi   # 根据/var/lib/iscsi/  中发现的信息,识别设备
Stopping iscsi:                                            [  OK  ]
Starting iscsi:                                            [  OK  ]

关闭:

[root@xuegod64 ~]# systemctl stop iscsi 
[root@xuegod64 ~]# systemctl stop iscsid 

开机自动启动:

[root@xuegod64 ~]# chkconfig  iscsi on
[root@xuegod64 ~]# chkconfig  iscsid on

查看发现到新硬盘:

[root@xuegod64 ~]# ll /dev/sdb
brw-rw---- 1 root disk 8, 16 Jul 30 19:11 /dev/sdb

卸载,挂载存储设备
卸载

[root@xuegod64 ~]#  iscsiadm -m node -T iqn.2018-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.

[root@xuegod64 ~]# ls /dev/sdb  #查看设备不存在
ls: cannot access /dev/sdb: No such file or directory

登录存储存储设备

[root@xuegod64 ~]# iscsiadm -m node -T iqn.2018-01.cn.xuegod.www:target_san1 -l
Logging in to [iface: default, target: iqn.2018-01.cn.xuegod.www:target_san1, portal: 192.168.1.63,3260] (multiple)
Login to [iface: default, target: iqn.2018-01.cn.xuegod.www:target_san1, portal: 192.168.1.63,3260] successful.

[root@xuegod64 ~]# ls /dev/sdb   
/dev/sdb

上面的方法看起来比较复杂,命令比较长,简单的通过服务卸载与登陆

卸载方法二:

[root@xuegod64 ~]# systemctl stop iscsi
Stopping iscsi:                                            [  OK  ]
[root@xuegod64 ~]# ls /dev/sdb
ls: cannot access /dev/sdb: No such file or directory

登录方法二:

[root@xuegod64 ~]# systemctl restart iscsi

彻底退出:

[root@xuegod64 ~]# systemctl stop iscsi
[root@xuegod64 ~]# rm -rf /var/lib/iscsi/*

实例1: 在xuegod64上对识别出来的硬盘,分区格式化,挂载使用。

[root@xuegod64 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260   #发现存储设备
[root@xuegod64 ~]# systemctl restart iscsid  #登录存储
[root@xuegod64 ~]# systemctl restart iscsi
[root@xuegod64 ~]# ls /dev/sdb      #发现sdb
/dev/sdb

分区格式化,挂载使用

[root@xuegod64 ~]# fdisk /dev/sdb   #划分一个分区当作本地盘使用即可
[root@xuegod64 ~]# ll /dev/sdb*      #查看分区
[root@xuegod64 ~]# mkfs.ext4 /dev/sdb1     #格式化分区
[root@xuegod64 ~]# mount /dev/sdb1 /opt/	#挂载使用
[root@xuegod64 ~]# cp /etc/passwd /opt/		#测试文件写入

例2: 在target服务端,再添加一个存储客户端:

添加如下内容:

[root@xuegod63 ~]# vim /etc/tgt/targets.conf

         backing-store  /dev/sda4
         initiator-address 192.168.1.64
         initiator-address 192.168.1.62  #添加一个客户端                 
 vendor_id  xuegod
         product_id   target1


[root@xuegod63 ~]# systemctl restart tgtd
Stopping SCSI target daemon: initiators still connected    [FAILED]
Starting SCSI target daemon:                               [FAILED]

解决:客户端退出一下

[root@xuegod64 ~]# umount /opt/   #客户端卸载
[root@xuegod64 ~]# systemctl stop  iscsi  #客户端停止服务,做了这两个,再启动服务器端,否则,数据损失丢弃清空的情况发生。

客户端退出后,再测试启动:

[root@xuegod63 ~]# /etc/init.d/tgtd restart
Stopping SCSI target daemon:                               [  OK  ]
Starting SCSI target daemon:                               [  OK  ]
[root@xuegod63 ~]# tgt-admin –show  #查看情况

测试: xuegod64 和xuegod62 都挂载上硬盘,数据同步

[root@xuegod64 ~]# systemctl start iscsid
[root@xuegod64 ~]# systemctl start iscsi 
[root@xuegod64 ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1
[root@xuegod64 ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1

[root@xuegod64 ~]# mount /dev/sdb1 /opt/
[root@xuegod64 ~]# cp /etc/passwd /opt/    #复制一些数据

测试:xuegod62 是否数据同步

[root@xuegod62 ~]# yum –y install iscsi-initiator-utils
[root@xuegod62 ~]#  iscsiadm -m discovery -t sendtargets -p 192.168.1.63:3260 
192.168.1.63:3260,1 iqn.2018-01.cn.xuegod.www:target_san1
[root@xuegod62 ~]# systemctl restart iscsid
[root@xuegod62 ~]# systemctl restart iscsi

有时候环境和你操作的顺序问题,可能无法发现,重启一下SAN Server,然后两台客户端重新sendtargets一下,重新启动服务和挂载.

[root@xuegod62 ~]# ls /dev/sdb*
/dev/sdb  /dev/sdb1
[root@xuegod62 ~]# mount /dev/sdb1 /opt/
[root@xuegod62 ~]#ls /opt/      #可以看到数据已经同步过来了
lost+found  passwd

添加新数据测试同步:
xueogd62

[root@xuegod62 ~]# cp  /etc/hosts   /opt
[root@xuegod62 ~]# ls /opt
hosts  lost+found  passwd

xuegod64上查看:

[root@xuegod64 ~]# ls /opt
lost+found  passwd
# passwd  #只看到passwd 

没有同步,是因为我们使用的ext4 文件系统,ext4文件系统不支持多个客户端同时使用。 使用GFS文件系统就可以同步。

http://343614597.blog.51cto.com/7056394/1699563 //SAN+GFS 配置

你可能感兴趣的:(Linux云计算架构师)