初始化Hybrid HPC
注意:此功能仅支持操作系统为RedHat 8.8的LiCO集群
安装Hybrid HPC--Azure. 请依据您部署LiCO集群的方式,选择下方的步骤:
- 如果您将LiCO部署在本地集群中,请在管理节点执行如下命令:
# 配置EPEL源 dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm # 安装 dnf install -y lico-core-cloudscheduling-azure
- 如果您在docker容器中部署LiCO,请在管理节点执行如下命令:
# 配置EPEL源 dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm # 安装依赖包 dnf install -y openvpn easy-rsa sshpass
修改配置文件
/etc/lico/lico.ini.d/cloudscheduling.ini
,将如下内容更改为LiCO管理节点的IP地址和子网掩码:[CLOUDSCHEDULING] # local head node ip address/netmask # for example: # inet 10.241.57.123/24 brd 10.241.57.255 # HEAD_NODE_ADDRESS = "127.0.0.1/24" HEAD_NODE_ADDRESS = "10.241.57.123/24" # head node name # REMOTE_AGENT = "localhost" REMOTE_AGENT = "head"
管理节点共享
/opt/lico/cloud
:echo "/opt/lico/cloud *(ro,sync,no_subtree_check,no_root_squash)" >> /etc/exports exportfs -a
修改LiCO管理节点slurm配置文件
/etc/slurm/slurm.conf
, 在文件的最后添加如下内容:include /opt/lico/cloud/azure/slurm.conf
配置Hybrid HPC的自动调整功能
修改LiCO管理节点slurm配置文件
/etc/slurm/slurm.conf
,在文件中修改以下参数:ResumeProgram=/opt/lico/pub/slurm/resume_script.sh SuspendProgram=/opt/lico/pub/slurm/suspend_script.sh
在目录
/opt/lico/pub/slurm
下,创建脚本 resume_script.sh, suspend_script.sh ,auto_scaling.sh# Create the directory if it is not existed mkdir -p /opt/lico/pub/slurm
# resume_script.sh #!/bin/bash /opt/lico/pub/slurm/auto_scaling.sh $1 on
# suspend_script.sh #!/bin/bash /opt/lico/pub/slurm/auto_scaling.sh $1 off
# auto_scaling.sh #!/bin/bash power_type=$2 echo "`date` Power $power_type invoked $0 $1" >> /var/log/lico_power_save.log hosts=`scontrol show hostnames $1` for host in $hosts;do list+=\"$host\", done list=${list%?} echo "`date` start power $power_type: $hosts" >> /var/log/power_save.log api_key="input your api key here" login_ip="input your login ip here" curl -X POST -H "Content-Type: application/json" -H "Authorization: token $api_key" -d '{"vms":['$list']}' -k https://$login_ip/api/cloudscheduling/vm/autoscaling/$power_type/ echo "`date` end power $power_type: $hosts" >> /var/log/lico_power_save.log
在auto_scaling.sh脚本中,填入api_key,login_ip 的内容 您可以登录LiCO页面,点击管理→API Key,获取相应的API Key的内容,login_ip即为LiCO的登录IP地址。
运行如下命令重启LiCO管理节点slurmctld服务:
systemctl restart slurmctld
创建Azure身份认证程序:
注册应用程序 **注意:**在注册应用程序前,请您先检查Azure AD权限和订阅权限。详情请查看:https://learn.microsoft.com/zh-cn/azure/active-directory/develop/howto-create-service-principal-portal
通过Azure帐号登录到Azure门户,选择Microsoft Entra ID
选择应用注册,点击新注册
为应用程序命名,例如example-app。 选择支持的帐户类型,它决定了谁可以使用应用程序。设置这些值后,选择注册。
注册完成后,复制应用程序(客户端) ID 和目录(租户) ID并存储。
将角色分配给应用程序
在 Azure 门户中,将应用程序在订阅范围内分配角色,请搜索并选择订阅,或在主页页上选择订阅。
选择要将应用程序分配到的特定订阅
选择访问控制, 选择添加->添加角色分配,打开添加角色分配页面
在角色选项卡中,选择特权管理员角色->所有者
在成员选项卡中,选择将访问权限分配到->用户、组或服务主体,然后选中选择成员。 默认情况下,选项中不显示 Azure AD 应用程序。 若要查找应用程序,请按名称(例如example-app)进行搜索,并从返回的列表中选择它。 单击选择按钮
点击审阅和分配按钮
创建应用程序密码
选择Microsoft Entra ID
从Azure AD中的应用注册,选择拥有的应用程序
选择证书和密码
选择客户端密码->新建客户端密码
添加密码的说明和持续时间。 完成后,选择添加。
添加客户端密码后,将显示客户端密码的值。 复制此值,因为稍后将不能查看该值。将该值存储在与目录ID和应用程序ID相同的位置。
执行如下命令将azure身份认证信息导入lico中:
# 将6中获取的应用程序(客户端) ID,目录(租户) ID及客户端密码跟随提示依次进行导入 lico azure_secret import
新建公共IP地址
搜索并选择公共 IP 地址 > 点击创建
依据Azure的说明填写必要参数 注意:
- 资源组的选项处,请您点击选择框下的新建按钮,创建一个新的资源组
- LiCO 7.0.0 默认支持的Azure区域有:East US, West Europe, UAE North, West India, Korea Central。请您注意位置的选择。
点击创建按钮