Lustre云版本——客户端设置

来自Lustre文件系统
跳转至: 导航搜索

概述

为了访问Lustre文件系统,它必须挂载在运行了Lustre客户端软件的机器上。Lustre客户端软件包括一组必须与运行中的内核兼容的内核模块,以及用于与文件系统交互的用户空间工具。

从Lustre云版本的1.2版本开始,可使用Lustre客户端设置工具来协助软件安装、IPSec配置(可选)和挂载文件系统。此版本的产品还包括支持DKMS的Lustre客户端包。

请注意,DKMS需要一个工作构建环境。因为Lustre客户端内核模块必须针对运行中的内核进行构建。如果特定站点的环境无法满足这一要求,那么可以从Whamcloud获得特定内核的非DKMS客户端包。

重要提示:如果在创建文件系统时启用了加密支持,那么必须使用此客户端设置工具来配置客户端。不支持手动配置IPSec。

支持的客户端

版本 支持工具? 是否测试?
el6 (CentOS, RHEL, 等)
el7 (CentOS, RHEL, 等)
Amazon Linux 2015.09
Amazon Linux 2016.03

目前,我们推荐el6或el7作为客户端实例版本。客户端设置工具可以配置亚马逊Linux客户端,但这个发行版还没有进行任何重大测试来验证Lustre功能。

客户端部署场景

完全自动化的客户端部署

在这种情况下,每个客户端实例都会运行设置工具来安装软件包、构建适当的内核模块、自动挂载文件系统。此设置工具是用于快速安装和测试,但不是长期部署的最佳选择。

要求

  • 云版本的Lustre文件系统必须为运行状态,且可由客户端实例访问。
  • 每个客户端实例的发行版必须在"支持的客户端"版本列表中
  • 每个客户端实例必须能够通过yum访问在线软件更新,以便安装所需的软件包(gcc、kernel-devel等)。
  • 每个客户机实例必须已经启动了一个IAM角色,其中包括AmazonDynamoDBReadOnlyAccess策略,或者是与之等效级别的对文件系统堆栈创建的FilesystemTable DynamoDB表的只读访问。

流程

1. 在每个 Lustre 客户端实例上,在sudo到根用户后运行以下命令:
curl http://<mgs-ip>/install-client | bash

一段时间后,输出应该表明Lustre客户端软件已经安装和配置,并且文件系统已经被挂载。文件系统条目已被添加到/etc/fstab中,因此重启后,它应该自动重新挂载。如果更新内核,Lustre客户端模块应该自动为新内核重建(如果必要)。

多个文件系统的全自动客户端部署

该方案与第一种方案类似,但增加了一个额外的步骤,以便处理AWS账户中的多个CE文件系统。如果没有额外的输入,设置工具无法知道应该使用哪个文件系统来配置客户端。

要求

  • 云版本的Lustre文件系统必须为运行状态,且可由客户端实例访问。
  • 每个客户端实例的发行版必须在"支持的客户端"版本列表中
  • 每个客户端实例必须能够通过yum访问在线软件更新,以便安装所需的软件包(gcc、kernel-devel等)。
  • 每个客户机实例必须已经启动了一个IAM角色,其中包括AmazonDynamoDBReadOnlyAccess策略,或者是与之等效级别的对文件系统堆栈创建的FilesystemTable DynamoDB表的只读访问。

流程

以下命令需要在每个Lustre客户端实例上以root身份运行。

1. curl http://<mgs-ip>/client-setup-tool -o /usr/sbin/ce-client && chmod +x /usr/sbin/ce-client。

2. ce-client auto setup --stack <cloudformation stack name>。


现在应按第一种场景下的详细过程进行。

使用配置文件进行自动客户端部署

该方案与第一种方案类似,但不需要对DynamoDB进行只读访问。该方案对于在快速设置和测试环境中配置现有实例很有用,但对于长期部署来说可能不是最佳选择。

要求

  • 云版本的Lustre文件系统必须为运行状态,且可由客户端实例访问。
  • 每个客户端实例的发行版必须在"支持的客户端"版本列表中
  • 每个客户端实例必须能够通过yum访问在线软件更新,以便安装所需的软件包(gcc、kernel-devel等)。

流程

首先,在Lustre服务器实例上生成ce-client配置文件,然后将其提供给客户端实例使用:

1. 在Lustre服务器上(例如MGS),以root身份运行以下命令: ce-client config generate -o <filename>。

2. 将生成的配置文件复制到每个客户端节点上(或推送到S3桶上)


重要提示:启用文件系统加密后,客户端配置文件包含安全敏感信息(IPsec预共享密钥),所以应防止该文件被未授权的用户访问。建议使用安全复制(例如使用scp)和限制性的文件权限(例如0600,由root拥有)。


以下命令需要在每个Lustre客户端实例上以root身份运行:

1. curl http://<mgs-ip>/client-setup-tool -o /usr/sbin/ce-client && chmod +x /usr/sbin/ce-client

2. ce-client auto setup --config <filename> (这个文件可以托管在客户端实例的本地s3中,或者是可以通过http访问的文件)

一段时间后,输出应该表明Lustre客户端软件已经安装和配置,并且文件系统已经被挂载。文件系统条目已被添加到/etc/fstab中。因此在重启后,文件系统仍应该自动重新挂载。如果更新内核,Lustre客户端模块应该在必要时自动为新内核重建。

定制化AMI部署

在这种情况下,使用一个单一的客户端实例(称为"prime")来运行初始设置过程,以构建和安装Lustre客户端软件。再从实例的文件系统中创建一个新的AMI,将其用于所有客户机,以避免在每个客户机上进行构建和安装过程。

要求,初始设置

  • 云版本的Lustre文件系统必须为运行状态,且可由客户端实例访问。
  • 每个客户端实例的发行版必须在"支持的客户端"版本列表中
  • 每个客户端实例必须能够通过yum访问在线软件更新,以便安装所需的软件包(gcc、kernel-devel等)。

流程,初始设置

以下命令应以prime实例的root用户身份运行:

1. curl http://<mgs-ip>/client-setup-tool -o /usr/sbin/ce-client && chmod +x /usr/sbin/ce-client

2. ce-client package add-client-source --url http://<mgs-ip>/client-packages

3. ce-client package install ipsec (可选,只有当客户端用于访问IPSec保护的文件系统时才需要)

4. ce-client package install lustre

成功完成最后一步后,使用AWS EC2控制台或API,从prime实例创建新的AMI。

要求,定制化客户端

  • 云版本的Lustre文件系统必须为运行状态,且可由客户端实例访问。
  • 每个客户机实例必须已经启动了一个IAM角色,其中包括AmazonDynamoDBReadOnlyAccess策略,或者是与之等效级别的对文件系统堆栈创建的FilesystemTable DynamoDB表的只读访问,或者
  • 另一种方法是,每个客户机实例必须能够访问在Lustre服务器实例(例如 MGS)上由于运行了以下命令而创建的配置文件:ce-client config generate -o <filename>

重要提示:启用文件系统加密后,客户端配置文件包含安全敏感信息(IPsec预共享密钥),所以应防止该文件被未授权的用户访问。建议使用安全复制(例如使用scp)和限制性的文件权限(例如0600,由root拥有)。

流程,定制化客户端

如果使用生成的配置文件,则步骤如下:

1. ce-client auto setup --skip-packages --config <filename> (这个文件可以托管在客户端实例的本地s3中,或者为通过http访问的文件)

如果客户机可以访问需求中描述的文件系统的DynamoDB表,那么步骤如下:

1. ce-client auto setup --skip-packages

客户端设置工具模式

本节介绍通过客户端设置工具界面提供的各种子命令。在大多数情况下,首选为自动模式,但在某些情况下,可能需要使用有更多控制的设置来运行各个部分。与大多数命令行实用工具一样,可以通过ce-client帮助命令获得最新的信息。

重要提示:如果在非自动状态下使用客户机设置工具,则需要了解,当启用文件系统加密时,必须在尝试挂载Lustre客户端之前配置IPSec。如果不遵循正确的流程,Lustre客户端将无法与任何Lustre服务器通信。因此,首选并推荐使用自动设置模式。

自动模式

自动模式是首选的操作模式。在此模式下,客户端设置工具将自动配置包源代码、安装包、配置IPSec(如果文件系统上启用了加密),并挂载Lustre客户端。为了让客户机设置工具确定其配置,客户端实例必须具有基于角色的DynamoDB读取访问权限,或者必须在Lustre服务器实例上生成配置文件并提供给客户端实例使用(例如复制到本地文件、托管在S3上等)。

示例

  • # ce-client auto setup
  • # ce-client auto setup --config /path/to/config.json
  • # ce-client auto setup --config s3://<bucket>/config.json
  • # ce-client auto teardown
  • # ce-client auto teardown --config s3://<bucket>/config.json

配置

用于生成客户端配置文件。必须在具有DynamoDB读取权限的实例上运行,例如MGS实例。生成的配置文件可以通过HTTP服务器托管在S3 bucket中,或者复制到每个客户端实例中。

重要提示:启用文件系统加密后,客户端配置文件包含安全敏感信息(IPsec预共享密钥),所以应防止该文件被未授权的用户访问。建议使用安全复制(例如使用scp)和限制性的文件权限(例如0600,由root拥有)。

示例

  • # ce-client config generate -o /tmp/client-config.json

软件包

控制ce-client所需软件包的安装和卸载。本工具所管理的软件包列表是预先配置的,因此它并不是一个通用的软件包管理工具。

示例

  • # ce-client package add-client-source --url http://<mgs-ip>/client-packages
  • # ce-client package install lustre
  • # ce-client package install ipsec
  • # ce-client package remove lustre
  • # ce-client package remove ipsec
  • # ce-client package remove-client-source

ipsec

ipsec用于控制客户端和Lustre服务器之间IPSec通道的配置。要求在Lustre服务器(如MGS)上生成有效的客户端配置,且已经安装了IPSec包(例如通过 ce-client package install ipsec 命令安装)。

重要提示:除非在创建时启用了文件系统加密,否则客户端IPSec配置将无法工作。不支持创建后的IPSec配置。

示例

  • # ce-client ipsec setup --key <ipsec-pre-shared-key> --peer hostname:ipaddr [--peer hostname:ipaddr]
  • # ce-client ipsec teardown

lustre

控制Lustre客户端的配置。要求在Lustre服务器(例如MGS)上生成有效的客户端配置,且已经安装了lustre包(例如通过ce-client package install lustre命令安装)。

Lustre文件系统将作为一个条目添加到/etc/fstab中,以便在重启时重新挂载。

重要提示:如果已启用文件系统加密,则必须在配置Lustre客户端之前配置IPSec。

示例

  • # ce-client lustre mount --create --mountpoint /mnt/<fsname> --device <mgsip>@tcp:/<fsname>
  • # ce-client lustre unmount --all
  • # ce-client lustre unmount --mountpoint /mnt/<fsname>