• 搭建iscsi存储系统(一)


    (1).DAS、SAN、NAS三种存储方式

      参考:https://blog.csdn.net/qq_23348071/article/details/73963407

      DAS全称Direct-Attached Storage,中文名直连式存储,是一种计算机存储,它直接连接到某台计算机且其他计算机无法获取。对于个人计算机用户来说,硬盘驱动器就是直连式存储的常见形式。在企业中,服务器里的个体磁盘被称为直连式存储,作为服务器外(但可通过SCSI、SATA及SAS接口直接连在一起)的驱动组。因为服务器无需通过网络来读写数据,所以DAS能为终端用户提供比网络存储更高的性能。这也就是企业常为其有高性能需求的特定类型的应用采用DAS的原因。直连式存储的主要替代选择是网络附属存储(NAS)以及存储区域网络(SAN)。

      DAS优点:使用方便,直接识别为一个块设备。

      DAS缺点:消耗I/O和CPU。

      NAS全称Network Attached Storage,中文名网络附属存储。NAS服务器是连接在网络上,具备资料存储功能的服务器,一种专用数据存储服务器。网络附属存储基于标准网络协议(TCP/IP)实现数据传输,为网络中的Windows/Linux/Mac OS等各种不同操作系统的计算机提供文件共享和数据备份。部分NAS系统还可以支持FTP、HTTP、SQL、SQLSERVER等等功能,例如群晖。NAS采用NFS技术实现类Unix系统之间存储共享,采用CIFS技术实现Windows与类Unix系统之间数据共享。Samba软件就是使用的CIFS技术。

      国内做NAS的有群晖、希捷、西部数码、威联通;国际上做NAS的有Netapp、OUO、Dell、EMC。专业开源NAS系统:freeNAS、nas4free、OpenMediaValut、群晖。

      NAS优点:I/O消耗由前端服务器转移到后端存储设备上,并且扩展方便。

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

      SAN全称Storage Area Network and SAN Protocols,中文名存储区域网络。SAN是一种高速网络,提供在计算机与存储系统之间的数据传输。存储设备是指一台或多台用以存储计算机数据的磁盘设备,通常指磁盘阵列。其采用网状通道(Fibre Channel,简称FC)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。SAN存储由于其基础是一个专用网络,因此扩展性很强,不管是在一个SAN系统中增加一定的存储空间还是增加几台使用存储空间的服务器都非常方便。

      目前常见的SAN有FC-SAN和IP-SAN(又称之为ISCSI,Internet小型计算机系统接口),其中FC-SAN通过光纤通道协议转发SCSI协议,IP-SAN通过TCP协议转发SCSI协议。

      NAS和SAN的区别:第一,网络架构。NAS直接使用TCP/IP传输数据,而SAN使用SCSI或ISCSI协议传输数据。第二,文件读写的实现方式。NAS采用了NFS和CIFS技术实现文件共享,说明NAS是基于操作系统的“文件级”读写操作。而SAN中计算机和存储间的接口是底层的块协议,按照协议头的“块地址+偏移地址”来定位,共享的存储和前段的操作系统类型没有关系,任何操作系统都可以正常识别。

    (2).配置IP-SAN服务器

     1)实验环境

    youxi1  192.168.5.101  服务端,添加一块盘sdb作为共享盘

    youxi2  192.168.5.102  客户端

    youxi3  192.168.5.103  客户端

      IP-SAN以C/S模式运行,默认端口3260。

     2)配置youxi1为IP-SAN存储服务器

    [root@youxi1 ~]# yum -y install targetcli  //安装target
    [root@youxi1 ~]# targetcli  //进入交互界面进行配置
    Warning: Could not load preferences file /root/.targetcli/prefs.bin.
    targetcli shell version 2.1.fb46
    Copyright 2011-2013 by Datera, Inc and others.
    For help on commands, type 'help'.  //可以使用help查看帮助文档
    
    /> /backstores/block create test1 /dev/sdb  //使用/dev/sdb创建块存储对象test1,其中test1是自定义名称
    Created block storage object test1 using /dev/sdb.
    /> /iscsi create iqn.2019-08.youxi1:server  //创建ISCSI target,target命名在同一子网内确保唯一。
    WWN not valid as: iqn, naa, eui  //报错了
    /> /iscsi create iqn.2019-08.com.youxi1:server  //命名格式:iqn.yyyy.mm.<主机名(域名)反写>:自定义名称。自定义名称内不能有下划线
    Created target iqn.2019-08.com.youxi1:server.
    Created TPG 1.
    Global pref auto_add_default_portal=true
    Created default portal listening on all IPs (0.0.0.0), port 3260.  //可以看到监听的IP地址和端口号
    /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/acls create iqn.2019-08.com.youxi1:username
    Created Node ACL for iqn.2019-08.com.youxi1:username  //创建ACL规则列表,也就是客户端只能使用规则列表内的用户才可以连接target存储
    /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/luns create /backstores/block/test1  指定块存储对象test1为target的逻辑单元,逻辑单元号LUN0
    Created LUN 0.
    Created LUN 0->0 mapping in node ACL iqn.2019-08.com.youxi1:username
    /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/portals/ delete 0.0.0.0 3260  //删除原本监听的IP地址和端口号
    Deleted network portal 0.0.0.0:3260
    /> /iscsi/iqn.2019-08.com.youxi1:server/tpg1/portals create 192.168.5.101 3260  //添加一个新的监听IP地址和端口号
    Using default IP port 3260
    Created network portal 192.168.5.101:3260.  //注意:监控服务器端的本地IP地址和端口

      LUN全称Logical Unit Number,中文名逻辑单元号,是SCSI中的概念。块存储对象只要一加入target存储系统,就分有一个代号,后期在区别块设备的时候,只要说target 中LUN几号就可以了。 块存储对象被指定了一个LUN后,成为了一个“逻辑”磁盘,供存储客户端使用。

     3)配置ACL规则列表的用户名和密码

    /> cd /iscsi/iqn.2019-08.com.youxi1:server/tpg1/acls/iqn.2019-08.com.youxi1:username/
    /iscsi/iqn.20...uxi1:username> set auth userid=admin  //创建用户
    Parameter userid is now 'admin'.
    /iscsi/iqn.20...uxi1:username> set auth password=123456  //设置密码
    Parameter password is now '123456'.
    /iscsi/iqn.20...uxi1:username> saveconfig  //保存必须在根目录下执行,否则报错
    Command not found saveconfig
    /iscsi/iqn.20...uxi1:username> 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
    

     4)启动target服务

    [root@youxi1 ~]# systemctl start target && systemctl enable target  //启动并设置开机自启
    Created symlink from /etc/systemd/system/multi-user.target.wants/target.service to /usr/lib/systemd/system/target.service.
    [root@youxi1 ~]# firewall-cmd --permanent --zone=public --add-port=3260/tcp  //添加端口号
    success
    [root@youxi1 ~]# firewall-cmd --reload
    success

    (3).客户端配置

     1)配置客户端youxi2

      安装客户端并进行配置

    [root@youxi2 ~]# yum -y install iscsi-initiator-utils
    [root@youxi2 ~]# vim /etc/iscsi/initiatorname.iscsi  //修改发起者配置,也就是服务端的ACL规则名称
    InitiatorName=iqn.2019-08.com.youxi1:username  //修改为服务端的ACL规则列表名称
    [root@youxi2 ~]# vim /etc/iscsi/iscsid.conf
    node.session.auth.authmethod = CHAP  //第57行,取消注释
    node.session.auth.username = admin  //第61行,取消注释,并修改为ACL规则列表内的用户名
    node.session.auth.password = 123456  //第62行,取消注释,并修改为对应用户名的密码
    [root@youxi2 ~]# systemctl start iscsid
    

      发现ISCSI设备并登录

    [root@youxi2 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.5.101  //查找设备
    192.168.5.101:3260,1 iqn.2019-08.com.youxi1:server
    //登录方法一
    [root@youxi2 ~]# iscsiadm -m node -l  //登录设备
    Logging in to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] (multiple)
    Login to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] successful.
    [root@youxi2 ~]# ls /dev/sd*
    /dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
    
    //登录方法二
    [root@youxi2 ~]# systemctl restart iscsid  //在查找到设备后直接重启也可以
    [root@youxi2 ~]# ls /dev/sd*             
    /dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
    

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

    [root@youxi2 ~]# yum -y install tree
    [root@youxi2 ~]# tree /var/lib/iscsi/
    /var/lib/iscsi/
    ├── ifaces
    ├── isns
    ├── nodes
    │   └── iqn.2019-08.com.youxi1:server
    │       └── 192.168.5.101,3260,1
    │           └── default
    ├── send_targets
    │   └── 192.168.5.101,3260
    │       ├── iqn.2019-08.com.youxi1:server,192.168.5.101,3260,1,default -> /var/lib/iscsi/nodes/iqn.2019-08.com.youxi1:server/192.168.5.101,3260,1
    │       └── st_config
    ├── slp
    └── static
    
    10 directories, 2 file
    

      格式化硬盘(只有第一个需要格式化),挂载使用

    [root@youxi2 ~]# mkfs.xfs /dev/sdb
    meta-data=/dev/sdb               isize=512    agcount=4, agsize=1310720 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=0, sparse=0
    data     =                       bsize=4096   blocks=5242880, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none
    [root@youxi2 ~]# mkdir /share
    [root@youxi2 ~]# mount /dev/sdb /share
    [root@youxi2 ~]# echo youxi2 > /share/a.txt
    

     2)配置客户端youxi3

    [root@youxi3 ~]# yum -y install iscsi-initiator-utils
    [root@youxi3 ~]# vim /etc/iscsi/initiatorname.iscsi
    InitiatorName=iqn.2019-08.com.youxi1:username
    [root@youxi3 ~]# vim /etc/iscsi/iscsid.conf
    node.session.auth.authmethod = CHAP  //第57行,取消注释
    node.session.auth.username = admin  //第61行,取消注释,并修改为ACL规则列表内的用户名
    node.session.auth.password = 123456  //第62行,取消注释,并修改为对应用户名的密码
    [root@youxi3 ~]# systemctl restart iscsid
    [root@youxi3 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.5.101  //查找设备
    192.168.5.101:3260,1 iqn.2019-08.com.youxi1:server
    [root@youxi3 ~]# iscsiadm -m node -l  //登录设备
    Logging in to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] (multiple)
    Login to [iface: default, target: iqn.2019-08.com.youxi1:server, portal: 192.168.5.101,3260] successful.
    [root@youxi3 ~]# ls /dev/sd*
    /dev/sda  /dev/sda1  /dev/sda2  /dev/sdb
    [root@youxi3 ~]# mkdir /share
    [root@youxi3 ~]# mount /dev/sdb /share/  //挂载
    [root@youxi3 ~]# ls /share/
    a.txt
    

      注意:此时不会同步,是因为我们使用的XFS文件系统,XFS文件系统不支持多个客户端同时使用。 后期使用时,可以把sdb在youxi2上识别出来后,挂载到/share目录下,然后在youxi2安装一个nfs服务器,把/share目录共享给youxi3使用,这样就可以保障数据同步了。

  • 相关阅读:
    checkbox判断选中的三种方法
    bzoj 4031: [HEOI2015]小Z的房间
    bzoj 5056: OI游戏
    Hdoj 5181 numbers
    Loj #6164. 「美团 CodeM 初赛 Round A」数列互质
    Codeforces 869 C The Intriguing Obsession
    Loj #6142. 「2017 山东三轮集训 Day6」A
    bzoj 3714: [PA2014]Kuglarz
    Loj #6185. 烷基计数
    [HNOI2008]水平可见直线
  • 原文地址:https://www.cnblogs.com/diantong/p/11362875.html
Copyright © 2020-2023  润新知