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

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

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

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

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

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

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

      • 限制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)
    6. 运行下面的命令启动NFS服务。

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

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

    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
      1. 例如:

        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
      2. 登录

        例如:

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

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

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

      现在你可以建立/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)