关键词

linux搭建gfs系统 iscsi+GFS 实现网络存储

首先需要了解以下概念:
- GFS(Global File System):全局文件系统,可以实现多台服务器共享同一块磁盘数据的读写。
- iSCSI(Internet Small Computer System Interface):一种用于在IP网络上发送SCSI命令的协议,可以通过网络传输SCSI命令,来控制远程的SCSI设备。

下面我将详细讲解如何在Linux系统中搭建iSCSI+GFS网络存储系统。

系统要求

  • 至少两台CentOS或RHEL服务器,其中一台安装iSCSI Target,另一台安装iSCSI Initiator。
  • 安装GFS软件包。

搭建iSCSI Target

  1. 安装iSCSI Target软件:
yum -y install scsi-target-utils
  1. 编辑iSCSI Target配置文件/etc/tgt/targets.conf
nano /etc/tgt/targets.conf

添加以下内容:

<target iqn.2021-09.com.example:target>
    # 这里可以设置server的一些参数,例如iSCSI端口,数据传输方式等。
    # 省略部分配置...
    # 添加一个LUN
    <logicalunit target_backend="blockstore">
        # 配置LUN的大小,这里为10GB
        <backing-store /dev/sdb1>
            # 这里sdb1为待映射为LUN的磁盘分区
            # 如果想添加多个LUN,可以在此继续添加
        </backing-store>
    </logicalunit>
</target>
  1. 启动iSCSI Target服务:
systemctl start tgtd.service
systemctl enable tgtd.service

搭建iSCSI Initiator

  1. 安装iSCSI Initiator软件:
yum -y install iscsi-initiator-utils
  1. 配置iSCSI Initiator,添加iSCSI Target:
iscsiadm -m discovery -t sendtargets -p <iSCSI target IP>
# 这里<iSCSI target IP>为iSCSI Target所在的服务器IP地址

# 获取到iSCSI Target后,连接到iSCSI Target
iscsiadm -m node -T <IQN> -p <iSCSI target IP> -l
# 替换<IQN>为iSCSI target的IQN,<iSCSI target IP>为iSCSI Target所在的服务器IP地址
  1. 显示连接状态:
iscsiadm -m session
  1. 创建新的分区,并格式化为GFS文件系统:
# 查看LUN路径,一般在/dev/sd*路径下
cat /proc/partitions
# 这里先假设LUN路径为/dev/sdc

# 创建新的分区
fdisk /dev/sdc
# 然后根据提示依次输入n、p、1、回车、回车、w,创建一个新的20GB的分区

# 格式化分区为GFS文件系统
mkfs.gfs2 -p lock_nolock -j 2 /dev/sdc1
# 这里-p lock_nolock参数设置为lock_nolock,表示不使用锁定机制,这可以在测试或者不要求如此高的性能时使用

使用GFS文件系统

  1. 挂载GFS文件系统:
mkdir -p /mnt/gfs
mount -t gfs2 /dev/sdc1 /mnt/gfs/
  1. 在GFS文件系统上进行测试:
cd /mnt/gfs/ 
touch test
echo "Hello World" > test
cat test

经过上述步骤,我们就成功搭建了iSCSI+GFS网络存储系统,可以实现多台服务器共享同一块磁盘数据的读写。

示例1:
假设我们已经在服务器A上搭建好了iSCSI Target,服务器B上搭建好了iSCSI Initiator,现在我们需要在服务器C上挂载GFS文件系统并进行读写测试。那么,我们只需要在服务器C上按照上述步骤,将iSCSI Initiator连接到iSCSI Target,并挂载GFS文件系统,即可进行读写测试。

示例2:
假设我们有两块硬盘,一块用于搭建iSCSI Target,另一块用于搭建iSCSI Initiator。那么,在创建LUN时,我们只需要在<backing-store>标签中,将/dev/sdb1替换为待映射为LUN的磁盘分区即可,例如/dev/sdd1

本文链接:http://task.lmcjl.com/news/13758.html

展开阅读全文