在计算节点安装MindIO服务
本节介绍了如何本地安装MindIO,使用ascend-deployer工具安装MindIO的方式请参见《ascend-deployer用户指南》。
前提条件
- 完成需要安装MindIO的计算节点IP地址信息收集。
- 完成后端存储配置。
操作步骤
- 安装时,默认以MindIO运行用户安装MindIO SDK,其他用户需要使用SDK时,需要与运行用户同属一个用户组。
- 所有需要安装Ascend-mindxdl-mindio组件的服务器(IP地址在host_ip_list文件中的服务器),需要相同的安装用户和密码,并且该用户需要具备创建目录文件,修改systemd配置和“/etc/fuse”配置的权限。
- 安装目录默认为“/opt/mindio/”目录,如果在安装时参数指定了目录,则以实际指定的安装目录为准。
- 以安装用户<MindIO-install-user>登录安装节点。
- 将软件包Ascend-mindxdl-mindio_{version}_linux-{arch}.zip上传至设备上安装用户有权限读写的路径下。
- Ascend-mindxdl-mindio_{version}_linux-{arch}.zip以获取的实际包名为准。
- 整个安装步骤只需在安装节点进行操作,其他计算节点不需要上传安装包,MindIO服务会分发安装至计算节点。
- 进入软件包上传路径,解压软件包。
unzip Ascend-mindxdl-mindio_{version}_linux-{arch}.zip
表1 解压后内层目录结构 目录
目录内文件
说明
install
hand_out_deploy.py
安装工具脚本。
host_ip_list
IP地址配置文件。
memfs.conf
MindIO配置文件。
scp_file.sh
scp命令执行文件。
ssh_cmd.sh
ssh命令执行文件。
Ascend-mindxdl-mindio_{version}_linux-{arch}.tar
-
Ascend-mindxdl-mindio软件安装包。
- 进入安装包解压后的路径。
cd ./install
- 配置host_ip_list文件。
- 执行以下命令,打开host_ip_list文件。
vim host_ip_list
- 按“i”进入编辑模式,将所有需要安装Ascend-mindxdl-mindio服务的计算节点IP地址添加到host_ip_list文件,每行填写一个IP地址,不留空白行,下面仅为举例,请根据具体情况修改。
192.168.0.1 192.168.0.2
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行以下命令,打开host_ip_list文件。
- 配置memfs.conf文件。
- 执行以下命令,打开memfs.conf文件。
vim memfs.conf
- 按“i”进入编辑模式,根据实际情况对相关参数进行修改。
# configure file for memory filesystem # [memfs] 此标签不能删除!安装部署读取依赖此标签 [memfs] memfs.mount_path = /mnt/memfs memfs.data_block_pool_capacity_in_gb = 128 memfs.data_block_size_in_mb = 128 memfs.max_open_files = 4096 memfs.fuse_path = /usr/lib64/libfuse.so.2.9.2 memfs.write.parallel.enabled = false memfs.write.parallel.thread_num = 32 memfs.write.parallel.slice_in_mb = 16 # under fs underfs.count = 1 underfs.default = 1 underfs.1.type = pacific underfs.1.name = pacific01 underfs.1.mount_path = /mnt/dpc01 underfs.1.docker_map_path = # background background.backup.enabled = true background.backup.thread_num = 32 background.backup.ufs_name = pacific01 background.backup.failed_retry_times = 10 background.backup.failed_retry_max_interval_sec = 10 background.backup.failed_max_cnt_for_unserviceable = 10 background.backup.failed_auto_evict_file = false # ipc ipc.max_message_size_in_kb = 16 ipc.permit_super_user_access = false ipc.author.enabled = true ipc.author.encrypted = true ipc.author.file_path = /opt/mindio/conf/whitelist ipc.kmc.ksf.master = /opt/mindio/tools/pmt/master/ksfa ipc.kmc.ksf.standby = /opt/mindio/tools/pmt/standby/ksfb
表2 参数说明 参数
说明
取值范围
缺省值
memfs.mount_path
MindIO文件系统挂载路径,用户可以自定义挂载路径,方便用户查看MindIO内存缓存系统内文件。需确保此参数所指向的目录为空,MindIO安装时会重新创建该目录。
-
/mnt/memfs
memfs.data_block_pool_capacity_in_gb
MindIO文件系统内存分配大小,单位:GB,根据服务器内存大小来配置,建议不超过系统总内存的25%。
1~1024
128
memfs.data_block_size_in_mb
文件数据块分配最小粒度,单位:MB,根据使用场景中大多数文件的size决定配置,建议平均每个文件的数据块大小不超过128MB。
1~1024
128
memfs.max_open_files
最大打开文件数。
1024~65536
4096
memfs.fuse_path
本节点上FUSE动态链接库的地址,在安装时自动填入,非必填。
-
-
memfs.write.parallel.enabled
MindIO并发写性能优化开关配置,用户需结合业务数据模型特征决定是否打开本配置。
- false:关闭
- true:开启
false
memfs.write.parallel.thread_num
MindIO并发写性能优化并发数。
2~96
32
memfs.write.parallel.slice_in_mb
MindIO并发写性能优化数据切分粒度,单位:MB。
1~1024
16
underfs.count
对接后端存储实例数量,每个存储实例对应一个挂载好的本地目录。
1~32
1
underfs.default
后端存储默认使用ID。
1~underfs.count
1
underfs.<ID>.type
指定第<ID>个后端存储的类型,目前只支持pacific。<ID>的取值范围:1~underfs.default。
-
pacific
underfs.<ID>.name
第<ID>个后端存储的名称,每个后端存储名称要唯一。<ID>的取值范围:1~underfs.default。
-
pacific01
underfs.<ID>.mount_path
第<ID>个后端存储的挂载目录,需要用户完成Pacific后端存储对接并完成挂载。<ID>的取值范围:1~underfs.default。
-
/mnt/dpc<ID>
underfs.<ID>.docker_map_path
第<ID>个后端存储的挂载目录在Docker内的映射目录,<ID>的取值范围:1~underfs.default。
后端存储在主机侧,用户在Docker中运行业务,且后端存储的挂载目录在Docker内的映射目录二者不相同时,用户需要设置本配置项。
-
-
background.backup.enabled
是否开启备份。
- false:关闭
- true:开启
true
background.backup.thread_num
备份线程数量。
1~256
32
background.backup.ufs_name
备份指定后端存储名称。
-
pacific01
background.backup.failed_retry_times
失败重试次数。
10~60
10
background.backup.failed_retry_max_interval_sec
失败重试间隔,单位:秒。
10~60
10
background.backup.failed_max_cnt_for_unserviceable
备份失败次数达到该值后,触发停MindIO服务。
10~60
10
background.backup.failed_auto_evict_file
备份文件到underfs失败后,是否要自动取消后台备份任务。
- false:不取消后台备份
- true:取消后台备份
false
ipc.max_message_size_in_kb
最大消息长度,单位:KB。
4~1024
16
ipc.permit_super_user_access
是否允许root用户通过MindIO SDK访问MindIO文件系统内的文件。
须知:默认禁止root用户访问,若客户需要开启root访问权限,可能存在安全风险,请谨慎使用。
- false:不允许
- true:允许
false
ipc.author.enabled
是否开启白名单校验。
须知:关闭白名单校验可能存在风险,请谨慎使用。
- false:关闭
- true:开启
true
ipc.author.encrypted
是否开启白名单加密。
须知:关闭白名单加密可能存在风险,请谨慎使用。
- false:关闭
- true:开启
true
ipc.author.file_path
白名单保存地址。
-
/opt/mindio/security/authorization/whitelist
ipc.kmc.ksf.master
白名单主加密文件地址。
-
/opt/mindio/tools/pmt/master/ksfa
ipc.kmc.ksf.standby
白名单备加密文件地址。
-
/opt/mindio/tools/pmt/standby/ksfb
“ipc.author.file_path”、“ipc.kmc.ksf.master”和“ipc.kmc.ksf.standby”在配置文件中的默认地址,是在使用默认安装路径(见表3)时才有效。如果在安装时指定了安装路径,请对其进行同步修改。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行以下命令,打开memfs.conf文件。
- (可选)如果6中配置项“ipc.author.enabled”=“true”,才需要配置权限白名单。
只有用户组ID在白名单内的用户,才能向MindIO文件系统读写文件。
- 执行以下命令,打开whitelist文件。
vim whitelist
为了保证安装过程中whitelist文件安全性,建议安装用户设置whitelist权限为600。
- 按“i”进入编辑模式,配置白名单。
[ { "user": "0", "allow": true }, { "user": "1", "allow": false } ]
- 白名单配置采用JSON格式。
- “user”字段表示用户组ID。
- “allow”字段:
- “true”表示允许该用户组ID的用户访问MindIO文件系统。
- “false”表示禁止该用户组ID的用户访问MindIO文件系统。
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行以下命令,打开whitelist文件。
- 安装MindIO。
- 执行以下命令,安装Ascend-mindxdl-mindio。
python3 hand_out_deploy.py install 软件包上传路径/Ascend-mindxdl-mindio_{version}_linux-{arch}.tar user group install_path
表3 安装命令参数说明 参数
说明
hand_out_deploy.py
install目录下的自动化安装脚本。
install
执行安装动作。
软件包上传路径/Ascend-mindxdl-mindio_{version}_linux-{arch}.tar
软件包所在的路径。
user
指定MindIO安装后文件的归属用户和启动MindIO服务的用户,如果不指定,默认用户为hwMindX。
group
指定MindIO安装后文件的归属用户组和启动MindIO服务的用户组,如果不指定,默认用户组为HwHiAiUser。
install_path
指定MindIO安装文件路径,如果不指定,默认安装路径为“/opt”。
user、group、install_path三个参数需要同时设定或取消,不支持设置部分参数。
- 输入安装用户名<MindIO-install-user>和密码,开始执行安装过程。
input login user:<MindIO-install-user> input login password:密码
回显示例如下,表示Ascend-mindxdl-mindio安装成功。(1/6)----------check the configuration file. (2/6)----------send files to all nodes. (3/6)----------decompress files in all nodes. (4/6)----------install in all nodes. (5/6)----------start fs in all nodes. (6/6)----------success.
安装成功后,软件部署在“/opt/mindio”目录下,目录树如下所示:
├── bin │ ├── ockiod │ ├── seceasy_encrypt ├── ccae │ └── mindio_export.sh ├── conf │ ├── host_ip_list │ └── memfs.conf ├── lib │ ├── libbdm.so │ ├── libhse_authorization.so │ ├── libhse_cryption.so │ └── libsecurec.so ├── logs │ ├── audit.log │ ├── ockiod_audit.log │ ├── ockiod.log │ └── ockiod_start.log ├── scripts │ ├── install.sh │ └── node_start.sh ├── security │ └── authorization │ └── whitelist ├── tools │ └── pmt │ ├── master │ │ └── ksfa │ └── standby │ └── ksfb └── uds
日志存放在“/opt/mindio/logs”目录下,具体日志路径可参见表4。
表4 日志信息说明 日志路径
说明
/opt/mindio/logs/audit.log
加密工具审计日志路径。
/opt/mindio/logs/ockiod_audit.log
审计日志路径。
/opt/mindio/logs/ockiod.log
运行日志路径。
/opt/mindio/logs/ockiod_start.log
MindIO SDK安装和启动服务日志路径。
/var/log/app_hand_out_py.log
安装部署日志路径。
软件包上传节点通过app_hand_out_py.log日志记录安装部署脚本执行情况,卸载时需要手动删除。建议用户每次执行卸载操作时手动删除该日志文件,降低内存消耗。
- 执行以下命令,安装Ascend-mindxdl-mindio。
- 安装完成后,删除install目录下手动创建的whitelist文件。
rm -f whitelist
如不删除,可能会存在whitelist文件内容泄漏的风险。
- (可选)安装完成后,建议删除安装文件和工具。
- 执行以下命令,删除安装文件。
rm -f Ascend-mindxdl-mindio_{version}_linux-{arch}.zip rm -f Ascend-mindxdl-mindio_{version}_linux-{arch}.tar
- 执行以下命令,删除install工具。
rm -rf install
删除install工具后,将不能使用install工具提供的start_fs、stop_fs、uninstall命令来批量启动、停止、卸载MindIO服务。
- 执行以下命令,删除安装文件。
由于安装用户拥有较高权限,出于安全目的,建议安装后取消安装用户SSH远程登录服务器的权限(请参见SSH加固),以提升系统安全性。