前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搭建iscsi存储系统

搭建iscsi存储系统

作者头像
胡齐
发布2019-10-03 14:00:48
3.5K0
发布2019-10-03 14:00:48
举报
文章被收录于专栏:运维猫运维猫

1、常见的存储设备

存储设备:阵列柜

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

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

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

2、SAS接口和SATA接口区分

SAS接口:

SATA接口:

硬盘托架: 方便热插拔:

3、关于存储方式

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

优点:1. 使用方便

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

缺点:1. 消耗本服务器的资源I/O、CPU

2.非直连式存储:NAS网络附属存储和SAN存储区域网络。

网络性能很重要1000mbps、10000mbps (万兆网卡,10G)、100G网卡

以太网/光纤网 依赖网络, 网卡, 网线, ==> 网络

4、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缺点:以前网络会成为瓶颈, 但是现在使用10G光纤卡,就可以解决这个问题。

5、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系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。

6、NAS与SAN的区别在两方面:

第一,从网络架构来说,本质区别在于:

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

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

NAS采用了NFS和 CIFS技术实现文件共享。说明NAS是基于操作系统的“文件级”读写操作。

SAN中计算机和存储间的接口是底层的块协议,它按照协议头的“块地址+偏移地址”来定位。共享的存储和前端的操作系统类型没有关系,任何服务器操作系统,都可以正常识别。

7、 搭建iscsi存储系统

IP-SAN的运行模式:C/S模式,工作端口3260

服务端:服务名-target 172.17.1.151(目标)

客户端:服务名-initator 172.17.1.150 172.17.1.152(发起人).

7.1安装target

 [root@docker-02 ~]# yum install -y scsi-target-utils
 ##主配置文件
 [root@docker-02 ~]# ls /etc/tgt/targets.conf
 /etc/tgt/targets.conf
 ##启动服务
 [root@docker-02 ~]# /etc/init.d/tgtd start
 [root@docker-02 ~]# netstat -antup | grep 3260

7.2新建存储分区: sda4

 [root@localhost ~]# fdisk -l
 
 Disk /dev/sda: 107.4 GB, 107374182400bytes
 255heads, 63sectors/track, 13054cylinders
 Units =cylinders of 16065* 512=8225280bytes
 Sector size (logical/physical): 512bytes / 512bytes
 I/O size (minimum/optimal): 512bytes / 512bytes
 Disk identifier: 0x000b076e
 
   Device Boot     Start         End     Blocks   Id System
 /dev/sda1   *           1         26     204800  83Linux
 Partition 1does not end on cylinder boundary.
 /dev/sda2              26        287    2097152  82Linux swap / Solaris
 Partition 2does not end on cylinder boundary.
 /dev/sda3             287      13055  102554624  83Linux
 ##新建扩容时新建分区报错No free sectors available,平时不用swap分区,我就把/dev/sda2 swap分区给删除了。
 [root@localhost ~]# fdisk /dev/sda
 
 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 forhelp): p
 
 Disk /dev/sda: 107.4 GB, 107374182400bytes
 255heads, 63sectors/track, 13054cylinders
 Units =cylinders of 16065* 512=8225280bytes
 Sector size (logical/physical): 512bytes / 512bytes
 I/O size (minimum/optimal): 512bytes / 512bytes
 Disk identifier: 0x000b076e
 
   Device Boot     Start         End     Blocks   Id System
 /dev/sda1   *           1         26     204800  83Linux
 Partition 1does not end on cylinder boundary.
 /dev/sda3             287      13055  102554624  83Linux
 
 Command (m forhelp): 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):
 
 Command (m forhelp): 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@docker-02 ~]# reboot 或者   partx -a /dev/sda #使分区生效,多执行几次即可
 [root@docker-02 ~]# fdisk -l
 
 Disk /dev/sda: 107.4 GB, 107374182400bytes
 255heads, 63sectors/track, 13054cylinders
 Units =cylinders of 16065* 512=8225280bytes
 Sector size (logical/physical): 512bytes / 512bytes
 I/O size (minimum/optimal): 512bytes / 512bytes
 Disk identifier: 0x000b076e
 
   Device Boot     Start         End     Blocks   Id System
 /dev/sda1   *           1         26     204800  83Linux
 Partition 1does not end on cylinder boundary.
 /dev/sda3             287      13055  102554624  83Linux
 /dev/sda4              26        286    2091471  83Linux
 
 Partition table entries are not indisk order

7.3配置sda4共享

 [root@docker-02 ~]# vim /etc/tgt/targets.conf   ##写入以下内容
 下面这段内容是参考模板
 75#<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.2018-01.cn.docker:target_san1>
         backing-store /dev/sda4
         initiator-address 172.17.1.150
         initiator-address 172.17.1.152
         vendor_id docker
         product_id   target1
 </target>

注释:

default-driver iscsi #此配置文件默认全部注释,使用iscsi驱动

<tarrget iqn.2018-1.cn.docker:target_san1> # iscsi正规名字格式:iqn.年-月.主机名倒着写: target端名字

backing-store /dev/sda4 #可以是具体的分区,也可以是DD出来的文件。不能小于5G。(后面的文件系统是GFS,光日志空间就128M)

initiator-address 172.17.1.150 #指定允许访问的此存储主机

initiator-address 172.17.1.152 #指定允许访问的此存储主机

vendor_id “docker” #vendor是供应厂商编号标识这个设备(字符不要过长)

product_id "TARGET1" # 产品编号

</target>

7.4启动服务

 [root@docker-02 ~]# service tgtd restart
 [root@docker-02 ~]# netstat -antup | grep 3260 或者tgt-admin --show查看状态
 [root@docker-02 ~]# tgt-admin --show
 Target 1: iqn.2018-01.cn.docker:target_san1
   System information:
       Driver: iscsi
       State: ready
   I_T nexus information:
       I_T nexus: 4
           Initiator: iqn.1994-05.com.redhat:13fcc121c9e
           Connection: 0
               IP Address: 172.17.1.152
       I_T nexus: 5
           Initiator: iqn.1994-05.com.redhat:13fcc121c9e
           Connection: 0
               IP Address: 172.17.1.150
   LUN information:
       LUN: 0
           Type: controller
           SCSI ID: IET     00010000
           SCSI SN: beaf10
           Size: 0MB, Block size: 1
           Online: Yes
           Removable media: No
           Prevent removal: 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: 2142MB, Block size: 512
           Online: Yes
           Removable media: No
           Prevent removal: No
           Readonly: No
           Backing store type: rdwr
           Backing store path: /dev/sda4
           Backing store flags: 
   Account information:
   ACL information:
        172.17.1.150
        172.17.1.152

8、配置客户端: 172.17.1.152

8.1安装服务

 [root@docker-03 opt]# yum install -y iscsi-initiator-utils
 [root@docker-03 opt]# service iscsid restart
 [root@docker-03 opt]# iscsiadm -m discovery -t sendtargets -p 172.17.1.151:3260
 [root@docker-03 opt]# /etc/init.d/iscsid status
 iscsid (pid  1553) 正在运行...

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

 [root@docker-03 opt]# yum install -y tree ##安装tree命令,用于查询树
 [root@docker-03 opt]# tree /var/lib/iscsi/ ##发现target后,会在此目录先生成树结构
 /var/lib/iscsi/
 ├── ifaces
 ├── isns
 ├── nodes
 │   └── iqn.2018-01.cn.docker:target_san1
 │       └── 172.17.1.151,3260,1
 │           └── default
 ├── send_targets
 │   └── 172.17.1.151,3260
 │       ├── iqn.2018-01.cn.docker:target_san1,172.17.1.151,3260,1,default -> /var/lib/iscsi/nodes/iqn.2018-01.cn.docker:target_san1/172.17.1.151,3260,1
 │       └── st_config
 ├── slp
 └── static
 
 10directories, 2files

8.3客户端服务启动关系

先启动iscsid,再启动iscsi,iscsi是根据/var/lib/iscsi/中发现的信息,识别设备

 ##关闭
 [root@docker-03 opt]# service iscsi stop
 [root@docker-03 opt]# service iscsid stop
 ##启动
 [root@docker-03 opt]# service iscsid restart
 [root@docker-03 opt]# service iscsi restart
 ##开机自动启动
 [root@docker-03 opt]# chkconfig iscsi on
 [root@docker-03 opt]# chkconfig iscsid on

8.4查看发现到新硬盘以及卸载,挂载存储设备

 ##卸载方法一
 [root@docker-03 opt]# ll /dev/sdb
 brw-rw---- 1root disk 8, 169月  2916:51 /dev/sdb
 ##卸载
 [root@docker-03 opt]# iscsiadm -m node -T iqn.2018-01.cn.docker:target_san1 -u
 ##登录存储存储设备
 [root@docker-03 opt]# iscsiadm -m node -T iqn.2018-01.cn.docker:target_san1 -l
 上面的方法看起来比较复杂,命令比较长,简单的通过服务卸载与登陆
 ##卸载方法二
 [root@docker-03 opt]# service iscsi stop
 登录:
 [root@docker-03 opt]# service iscsi start

9、在172.17.1.152上对识别出来的硬盘,分区格式化,挂载使用。

 [root@docker-03 opt]# iscsiadm -m discovery -t sendtargets -p 172.17.1.151:3260 ##发现存储设备
 [root@docker-03 opt]# service iscsid restart ##登录存储
 [root@docker-03 opt]# service iscsi restart
 [root@docker-03 opt]# ll /dev/sdb
 brw-rw---- 1root disk 8, 169月  2916:51 /dev/sdb
 [root@docker-03 opt]# fdisk /dev/sdb ##划分一个分区当作本地盘使用即可
 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 forhelp): p
 
 Disk /dev/sdb: 2141MB, 2141666304bytes
 66heads, 62sectors/track, 1022cylinders
 Units =cylinders of 4092* 512=2095104bytes
 Sector size (logical/physical): 512bytes / 512bytes
 I/O size (minimum/optimal): 512bytes / 512bytes
 Disk identifier: 0x4c80a2ad
 
   Device Boot     Start         End     Blocks   Id System
 /dev/sdb1               1       1022    2090981  83Linux
 
 Command (m forhelp): n
 Command action
   e   extended
   p   primary partition (1-4)
 p
 Partition number (1-4): 
 Value out of range.
 Partition number (1-4): 
 Value out of range.
 Partition number (1-4): 1
 ##以下回车之后w保存
 [root@docker-03 opt]# ll /dev/sdb* ##查看分区
 brw-rw---- 1root disk 8, 169月  2917:06 /dev/sdb
 brw-rw---- 1root disk 8, 179月  2917:06 /dev/sdb1
 [root@docker-03 opt]# mkfs.ext4 /dev/sdb1 ##格式化分区
 [root@docker-03 opt]# mount /dev/sdb1 /opt/ ##挂载使用
 [root@docker-03 opt]# cp /etc/passwd /opt/ ##测试文件写入
 [root@docker-03 opt]# cd /opt/
 [root@docker-03 opt]# ls
 lost+found passwd

10、测试: 172.17.1.152 和172.17.1.150 都挂载上硬盘,数据同步

 [root@docker-01 opt]# yum -y install iscsi-initiator-utils
 [root@docker-01 opt]# iscsiadm -m discovery -t sendtargets -p 172.17.1.151:3260
 [root@docker-01 opt]# service iscsid restart
 [root@docker-01 opt]# service iscsi restart
 [root@docker-01 opt]# ls /dev/sdb*
 /dev/sdb /dev/sdb1
 [root@docker-01 opt]# mount /dev/sdb1 /opt/
 [root@docker-01 opt]# ls /opt/ ##可以看到数据已经同步过来了
 lost+found passwd
 添加新数据测试同步:
 [root@docker-01 ~]# cp /etc/sysconfig/network /opt/
 [root@docker-01 ~]# ls /opt/
 lost+found network passwd
 172.17.1.152上查看:
 [root@docker-03 opt]# ls
 lost+found passwd    ##只看到passwd 
 没有同步,是因为我们使用的ext4 文件系统,ext4文件系统不支持多个客户端同时使用。使用GFS文件系统就可以同步。
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、常见的存储设备
  • 2、SAS接口和SATA接口区分
  • 3、关于存储方式
  • 4、NAS网络存储
  • 5、NAS常见的技术:NFS和CIFS
  • 6、NAS与SAN的区别在两方面:
  • 7、 搭建iscsi存储系统
    • 7.1安装target
      • 7.2新建存储分区: sda4
        • 7.3配置sda4共享
          • 7.4启动服务
          • 8、配置客户端: 172.17.1.152
            • 8.1安装服务
              • 8.2target存储服务器信息在客户端存储的位置
                • 8.3客户端服务启动关系
                  • 8.4查看发现到新硬盘以及卸载,挂载存储设备
                  • 9、在172.17.1.152上对识别出来的硬盘,分区格式化,挂载使用。
                  • 10、测试: 172.17.1.152 和172.17.1.150 都挂载上硬盘,数据同步
                  相关产品与服务
                  对象存储
                  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档