配置实例

在本节中我们将通过几个实例说明,如何设置存储并使NFS和iSCSI存储系统正常工作。

基于本地硬盘和DAS的NFS服务

本节描述如何在一个标准的Linux系统中配置NFS输出。具体的命令取决于操作系统版本。

  1. 在存储服务器上安装RHEL/CentOS 发行版

  2. 如果根卷的大小超过2TB,创建一个小点的启动卷用于安装RHEL/CentOS,根分区保留20GB就足够了。

  3. 系统安装好以后,创建一个名为 /export的目录。可以在根分区下创建,或者挂载一个较大的磁盘卷。

  4. 如果你在一台主机上有超过16TB的存储空间, 则创建多个EXT3文件系统和多个NFS输出,单个EXT3文件系统不能超过16TB。

  5. /export目录创建后,运行如下命令配置NFS输出。

    1. # echo "/export <CIDR>(rw,async,no_root_squash,no_subtree_check)" >> /etc/exports

    根据你的部署需求,调整如上参数。

    • 限制NFS输出. 强烈建议通过指定子网掩码来限制NFS访问权限,(例如“192.168.1.0/24”)。只允许规定的集群才能访问, 避免非集群成员访问。 且管理网络和存储网络必须能够访问;如果2个网络相同,那么一个CIDR就足够了。 如果你是单独的存储网络那么必须提供独立的CIDR或者一个足够大的CIDR可以包含它们2个。

      下面是一个分隔的CIDRs的示例:

      1. /export 192.168.1.0/24(rw,async,no_root_squash,no_subtree_check) 10.50.1.0/24(rw,async,no_root_squash,no_subtree_check)
    • 移除async异步标记. 标志允许NFS服务器在提交并写入磁盘操作前就先返回相应,来提高性能。请在关键生产部署中移除异步标志。

  6. 运行下面的命令启动NFS服务。

    1. # chkconfig nfs on
  7. 编辑/etc/sysconfig/nfs,并取消如下行的注释。

    1. LOCKD_TCPPORT=32803
    2. LOCKD_UDPPORT=32769
    3. MOUNTD_PORT=892
    4. RQUOTAD_PORT=875
    5. STATD_PORT=662
    6. STATD_OUTGOING_PORT=2020
  8. 编辑/etc/sysconfig/iptables,添加如下行的记录到INPUT链的开始部分。

    1. -A INPUT -m state --state NEW -p udp --dport 111 -j ACCEPT
    2. -A INPUT -m state --state NEW -p tcp --dport 111 -j ACCEPT
    3. -A INPUT -m state --state NEW -p tcp --dport 2049 -j ACCEPT
    4. -A INPUT -m state --state NEW -p tcp --dport 32803 -j ACCEPT
    5. -A INPUT -m state --state NEW -p udp --dport 32769 -j ACCEPT
    6. -A INPUT -m state --state NEW -p tcp --dport 892 -j ACCEPT
    7. -A INPUT -m state --state NEW -p udp --dport 892 -j ACCEPT
    8. -A INPUT -m state --state NEW -p tcp --dport 875 -j ACCEPT
    9. -A INPUT -m state --state NEW -p udp --dport 875 -j ACCEPT
    10. -A INPUT -m state --state NEW -p tcp --dport 662 -j ACCEPT
    11. -A INPUT -m state --state NEW -p udp --dport 662 -j ACCEPT
  9. 重启服务

    NFS共享目录/export已经被创建

注解

进行复制和粘贴操作时,执行前确保粘贴内容为单行。一些文档阅读器可能会引起不必要的文本换行。

基于iSCSI的NFS服务

使用以下步骤创建基于iSCSI卷的NFS服务。这些步骤适用于RHEL/CentOS 5发行版。

  1. 安装iscsiadm。

    1. # yum install iscsi-initiator-utils
    2. # service iscsi start
    3. # chkconfig --add iscsi
    4. # chkconfig iscsi on
  2. 发现ISCSI target。

    1. # iscsiadm -m discovery -t st -p <iSCSI Server IP address>:3260

    例如:

    1. # iscsiadm -m discovery -t st -p 172.23.10.240:3260 172.23.10.240:3260,1 iqn.2001-05.com.equallogic:0-8a0906-83bcb3401-16e0002fd0a46f3d-rhel5-test
  3. 登录

    1. # iscsiadm -m node -T <Complete Target Name> -l -p <Group IP>:3260

    例如:

    1. # iscsiadm -m node -l -T iqn.2001-05.com.equallogic:83bcb3401-16e0002fd0a46f3d-rhel5-test -p 172.23.10.240:3260
  4. 发现SCSI磁盘,例如:

    1. # iscsiadm -m session -P3 | grep Attached
    2. Attached scsi disk sdb State: running
  5. 格式化磁盘为ext3类型并挂载卷。

    1. # mkfs.ext3 /dev/sdb
    2. # mkdir -p /export
    3. # mount /dev/sdb /export
  6. 添加磁盘到/etc/fstab并确保在启动时能被挂载。

    1. /dev/sdb /export ext3 _netdev 0 0

现在你可以建立/export共享目录

  • 限制NFS输出. 强烈建议通过特定的子网和掩码限制NFS访问权限(例如”192.168.1.0/24”), 只允许规定的集群才能访问, 避免非集群成员访问并非故意的情况下删除所有数据。 且管理网络和存储网络必须能够访问;如果2个网络相同,那么一个CIDR就足够了。 如果你是单独的存储网络那么必须提供独立的CIDR或者一个足够大的CIDR可以包含它们2个。

    下面是一个分隔的CIDRs的示例:

    1. /export 192.168.1.0/24(rw,async,no_root_squash,no_subtree_check) 10.50.1.0/24(rw,async,no_root_squash,no_subtree_check)
  • 移除async异步标记. 标志允许NFS服务器在提交并写入磁盘操作前就先返回相应,来提高性能。请在关键生产部署中移除异步标志。