linux系统之iscsi存储服务

一.ISCSI概述

  iscsi是直接对设备进行共享的服务。
  SCSI(Internet SCSI) 支持从客户端 ( 发起端 ) 通过 IP 向远程服务器上的 iSCSI 存储设备 ( 目标 ) 发送 SCSI 命令。
  iSCSI限定名称用于确定发起端和目标 , 并采用 iqn.yyyy-mm.{reverse domain}:label 的格式
  默认情况下 , 网络通信是至 iSCSI 目标上的端口 3260/tcp 的明文端口。
  iSCSI发起端:需要访问原始SAN存储的客户端。

  iSCSI目标:从iSCSI服务器提供的远程硬盘磁盘,或“目标门户”

  iSCSI目标门户:通过网络向发起端提供目标的服务器。

  IQN:“iSCSI限定名称”。每个发起端和目标需要唯一名称进行标识,最好的做法是使用一个在Internet上可能独一无二的名称。

iscsi示意图:

使用场景:

二.配置iscsi


1.服务端
    yum install targetcli -y



    fdisk /dev/vdb
                ####创建分区+2G
    partprob    ####同步分区表 



    targetcli 
    ls
    /> /backstores/block create wrh:storage1 /dev/vdb1
    Created block storage object wrh:storage1 using /dev/vdb1.
    /> /iscsi create iqn.2017-12.com.example:storage1
                   ###iscsi节点名称格式:iqn-type
                   ###linux上格式:iqn.yyyy-mm.com.example:有意义的名称如主机名
    Created target iqn.2017-12.com.example:storage1.
    Created TPG 1.
    /> /iscsi/iqn.2017-12.com.example:storage1/tpg1/acls create iqn.2017-12.com.example:wrhkey
    Created Node ACL for iqn.2017-12.com.example:wrhkey
                     ###创建key文件
    /> /iscsi/iqn.2017-12.com.example:storage1/tpg1/luns create /backstores/block/wrh:storage1   
                      ###luns连接 共享名称和设备名称
    Created LUN 0.
    Created LUN 0->0 mapping in node ACL iqn.2017-12.com.example:wrhkey
    /> /iscsi/iqn.2017-12.com.example:storage1/tpg1/portals create 172.25.254.150
                     ###node节点
    Using default IP port 3260
    Created network portal 172.25.254.150:3260.
   ls
   exit





    ####火墙策略加端口
    firewall-cmd --permanent --add-port=3260/tcp
    firewall-cmd --reload



2.客户端
    yum search iscsi
    yum install iscsi-initiator-utils.x86_64
    systemctl start iscsi



    vim /etc/iscsi/initiatorname.iscsi 
    #InitiatorName=iqn.2017-12.com.example:wrhkey  #复制在服务端建的key
    systemctl restart iscsi



    iscsiadm -m discovery -t st -p 172.25.254.150  #-m动作 -t类型 st
    iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.150 -l #-l登陆



    fdisk -l
    fdisk /dev/vdb 
    partprobe 
    mkfs.xfs /dev/vdb2
    mount /dev/vdb2 /mnt/
    df
    cd /mnt/ 
    touch textfile



测试:



三.开机自动挂载网络设备/dev/vdb2

   blkid
   /dev/vdb2: UUID="37e8b451-5840-49ab-8218-9d267dc398b3" TYPE="xfs"
   vim /etc/fstab
    #UUID="37e8b451-5840-49ab-8218-9d267dc398b3" /mnt  xfs defaults,_netdev 0 0





    #用id是为了避免使用设备名发生漂移,_netdev是开机先开网络而不是先读此文件内容
   #先poweroff然后再启动

 四.删除iscsi设备

 1.删除网络设备/dev/vdb2
  iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.150 -u
    #-u 退出登陆 暂时断开连接  
  iscsiadm -m node -T iqn.2017-12.com.example:storage1 -p 172.25.254.150 -o delete   
    #删除iscsi目标的本地记录,永久断开连接
  fdisk -l



  2.服务端:
  #删除共享设备
  targetcli
  /> clearconfig confirm=true


 

四.建立lvm设备(动态分配空间)

服务端:
    创建逻辑卷lvm


     
    pvcreate /dev/vdb1   #共享一个lv
    vgcreate iscsi_vg /dev/vdb1  #共享一个vg
    vgdisplay           #查看vg中的所有数据



    lvcreate -l 511 -n iscsi_lv0 iscsi_vg
    lvs
    


     targetcli       ###进入iscsi目标交互式配置模式
 /> /backstores/block create wrh:storage2 /dev/iscsi_vg/iscsi_lv0  
       ###和逻辑卷建立联系,把/dev/vg0/iscsi_storage用server1storage表示
 /> /iscsi create iqn.2017-12.com.example:storage2       
       ##创建iqn服务的名称(每个发起端和目标需要唯一名称进行标识)
 /> /iscsi/iqn.2017-12.com.example:storage2/tpg1/acls create iqn.2017-12.com.example:key1
 /> /iscsi/iqn.2017-12.com.example:storage2/tpg1/luns create /backstores/block/wrh:storage2     
       ##加密(默认情况下,网络通信是至iSCSI目标上的端口3260/tcp的明文)
 /> iscsi/iqn.2017-12.com.example:storage2/tpg1/portals create 172.25.254.150
 /> exit 
     firewall-cmd --list-all





   #客户端:
    systemctl restart iscsid.service 
    systemctl restart iscsi
    iscsiadm -m discovery -t st -p 172.25.254.150
    iscsiadm -m node -T iqn.2017-12.com.example:storage2 -p 172.25.254.150 -l
    fdisk -l
#如果需要增大
   在服务端再增加一块lvm分区/dev/vdb2
   pvcreate /dev/vdb2
   vgextend iscsi_vg /dev/vdb2
   lvextend -L 1500M /dev/iscsi_vg/iscsi_lv0 
   lvs


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iSCSI是一种网络存储协议,可以将远程设备的存储资源映射为本地磁盘,从而实现远程存储的访问。在Linux系统中,我们可以通过iSCSI服务来配置和管理iSCSI存储。 下面是在Linux系统中配置和管理iSCSI存储的步骤: 1. 安装iSCSI服务Linux系统中,我们可以使用yum命令安装iSCSI服务,命令如下: ``` yum install iscsi-initiator-utils ``` 2. 配置iSCSI服务 配置iSCSI服务需要以下步骤: (1)编辑iscsi配置文件/etc/iscsi/iscsid.conf,在文件中添加以下内容: ``` node.session.auth.authmethod = CHAP node.session.auth.username = <用户名> node.session.auth.password = <密码> ``` 其中,用户名和密码用于iSCSI的身份验证。 (2)编辑/etc/iscsi/initiatorname.iscsi文件,设置iSCSI的名称,命令如下: ``` echo "InitiatorName=iqn.2021-08.com.example:client1" > /etc/iscsi/initiatorname.iscsi ``` 其中,iqn.2021-08.com.example:client1为iSCSI的名称。 3. 连接iSCSI存储 连接iSCSI存储需要以下步骤: (1)查找iSCSI存储的地址和端口号,命令如下: ``` iscsiadm -m discovery -t st -p <存储地址> ``` 其中,存储地址为iSCSI存储的IP地址或域名。 (2)将iSCSI存储添加到发现列表中,命令如下: ``` iscsiadm -m node -o new -T <存储名> -p <存储地址>:<端口号> ``` 其中,存储名为iSCSI存储的名称,端口号为iSCSI存储的端口号。 (3)连接iSCSI存储,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -l ``` 4. 管理iSCSI存储 连接iSCSI存储成功后,我们可以使用以下命令管理iSCSI存储: (1)查看已连接的iSCSI存储,命令如下: ``` iscsiadm -m session ``` (2)断开与iSCSI存储的连接,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -u ``` (3)删除iSCSI存储,命令如下: ``` iscsiadm -m node -T <存储名> -p <存储地址>:<端口号> -o delete ``` 以上就是在Linux系统中配置和管理iSCSI存储的步骤。通过iSCSI服务,我们可以将远程存储资源映射为本地磁盘,从而实现远程存储的访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值