Skip to main content
NetApp virtualization solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

为 OpenNebula 配置 SMB/CIFS 数据存储

贡献者 sureshthoppay

为 OpenNebula 配置 SMB/CIFS 数据存储存储,使用 NetApp ONTAP。SMB 多通道通过与存储系统的多个网络连接提供容错并提升性能。

SMB/CIFS 文件共享需要存储管理员和虚拟化管理员进行配置。更多详情请参阅 "TR4740 - SMB 3.0 多通道"

备注 密码保存在明文文件中,只有 root 用户可以访问。确保采取适当的安全措施来保护敏感信息。

存储管理员任务

如果您是ONTAP新手,请使用系统管理器界面完成这些任务。

  1. 为 SMB 启用 SVM。跟随 "ONTAP 9 文档" 了解更多信息。

  2. 每个控制器至少创建两个 LIF。请按照文档中的步骤操作。作为参考,这里是此解决方案中使用的 LIF 的屏幕截图。

    显示示例

    nas接口详情

  3. 配置基于 Active Directory 或工作组的身份验证。请按照文档中的步骤操作。

    显示示例

    加入域信息

  4. 创建卷。选中“将数据分布到集群中”选项以使用FlexGroup。请确保该卷已启用反勒索软件保护。

    显示示例

    FlexGroup选项

  5. 创建 SMB 共享并调整权限。跟随"ONTAP 9 文档"了解更多信息。

    显示示例

    SMB 共享信息

  6. 向虚拟化管理员提供 SMB 服务器、共享名称和凭据。

虚拟化管理员任务

完成这些任务可将 SMB 共享添加为 OpenNebula 中的数据存储区,并启用多通道以提高性能和容错。

  1. 收集用于共享身份验证的 SMB 服务器、共享名称和凭据。

  2. 确保在 Fedora 上安装以下软件包 sssd realmd adcli oddjob oddjob-mkhomedir samba-common-tools krb5-workstation cifs-utils,用于 Active Directory 集成和 SMB 挂载支持。Debian 软件包是 realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin packagekit krb5-user cifs-utils。

  3. 为了实现容错,请确保至少有两个接口配置在不同的 VLAN 中。确认网卡支持 RSS。

  4. SSH 到前端服务器之一,并根据所需的 Datastore 类型创建配置文件。示例文件如下所示:

    备份
    1. 对于 Restic,

    $cat smb-restic.conf
    NAME = "Backup-Restic-SMB"
    TYPE = "BACKUP_DS"
    
    DS_MAD = "restic"
    TM_MAD = "-"
    
    RESTIC_PASSWORD = "<restic_password>"
    RESTIC_SFTP_SERVER = "<backup server>"
    1. 对于 Rsync,

    $cat smb-rsync.conf
    NAME = "Backup-Rsync-SMB"
    TYPE = "BACKUP_DS"
    
    DS_MAD = "rsync"
    TM_MAD = "-"
    
    RSYNC_USER = "<rsync_user>"
    RSYNC_HOST = "<backup server>"
    文件
    $cat smb-kernel.conf
    NAME = "File-Kernel-SMB"
    TYPE = "FILE_DS"
    DS_MAD = "fs"
    TM_MAD = "local"
    SAFE_DIRS = "/var/tmp/files"
    映像
    $cat smb-image.conf
    NAME = "Image-SMB"
    TYPE = "IMAGE_DS"
    DS_MAD = "fs"
    TM_MAD = "shared"
    系统
    $cat smb-system.conf
    NAME = "System-SMB"
    TYPE = "SYSTEM_DS"
    TM_MAD = "shared"
  5. 执行 onedatastore create <configuration file>。请注意创建后返回的数据存储 ID。

    onedatastore 创建 smb-system.conf ID: 100

  6. 在 /etc/ 中创建 smb 凭据文件。如果使用 kerberos 身份验证(KVM 主机已加入 <domain>),则无需执行此步骤。

    $cat /etc/smb-credentials-<datastore_id>.cfg
    username=<smb_username>
    password=<smb_password>
    domain=<smb_domain>
  7. 对凭据文件设置适当的权限 (640)。如果需要,将所有权更改为 oneadmin 用户和组。

  8. 使用 id oneadmin 命令收集 oneadmin 用户的 uid 和 gid。

  9. 更新 /etc/fstab 或 automount 配置以启用多通道。假设默认数据存储区位置为 /var/lib/one/datastores。如果不是,请检查 /etc/one/oned.conf 中的 DATASTORE_LOCATION 参数。确保 <datastore_id> 文件夹存在于数据存储区位置下。示例条目如下所示:

    使用 /etc/fstab
    # credentials mapping to file option is not required when using kerberos authentication
    //<smb_server>/<smb_share> /var/lib/one/datastores/<datastore_id> cifs credentials=/etc/smb-credentials-<datastore_id>.cfg,_netdev,noauto,x-systemd.automount,vers=3.0,multichannel,max_channels=16,nofail,uid=<oneadmin uid>,gid=<oneadmin gid> 0 0
    使用 automount
    # credentials mapping to file option is not required when using kerberos authentication
    /var/lib/one/datastores/<datastore_id> -fstype=cifs,credentials=/etc/smb-credentials-<datastore_id>.cfg,vers=3.0,multichannel,max_channels=16,uid=<oneadmin uid>,gid=<oneadmin gid> ://<smb_server>/<smb_share>
  10. 使用 mount -asystemctl reload autofs 命令挂载数据存储库。

  11. 使用 mount 命令验证数据存储库是否已装载,并使用 `onedatastore show <datastore_id>`命令验证数据存储库容量。

  12. 确保 oneadmin 用户和组拥有数据存储文件夹。使用 `chown -R oneadmin:oneadmin /var/lib/one/datastores/<datastore_id>`命令调整权限。