AircityCloudForLinuxVersion 安装文档

PDF版本文档 下载地址
0529[最新版] 点击查看下载
0511 点击查看下载
# 实测环境
系统: Kylin Linux Advanced Server V10 (Sword)(SP2)
架构: X86_64
用户: freedo[具有sudo权限]

一、安装包准备

系统架构 组件 安装包名称 下载地址 备注
x86_64 NVIDIA 显卡驱动 NVIDIA-Linux-x86_64-525.116.03.run https://installpackages.gbim.vip/Nvidia-Drivers/ForLinux/NVIDIA-Linux-x86_64-525.116.03.run
x86_64 中继服务 coturn 镜像 coturn-latest-amd64-20230510.tar.gz https://installpackages.gbim.vip/docker_update/coturn-latest-amd64-20230510.tar.gz
x86_64 AirCityCloud AirCityCloud_x86_0529.zip https://pan.baidu.com/s/1e_9ixhi3OnKRnnx-6QEEeA?pwd=l5r4
ARM64 NVIDIA 显卡驱动 NVIDIA-Linux-aarch64-525.116.04.run https://installpackages.gbim.vip/Nvidia-Drivers/ForLinux/ARM64/NVIDIA-Linux-aarch64-525.116.04.run
ARM64 中继服务 coturn 镜像 coturn-latest-arm64-20230511.tar.gz https://installpackages.gbim.vip/docker_update/coturn-latest-arm64-20230511.tar.gz
ARM64 AirCityCloud AirCityCloud_arm64_0529.zip https://pan.baidu.com/s/1aUFhnbTIuBqv6ZtbE48ErA?pwd=vj5q

二、初始化服务器

1. 创建 freedo 用户,并授予 sudo 权限

useradd -u 9988 freedo #建立用户名为 freedo 的一般用户
passwd freedo #为用户 freedo 设置密码
#Changing password for user freedo.
#New UNIX password:  ← 输入密码(密码不会被显示)
#Retype new UNIX password:  ← 再次输入密码确认两次密码一致
#passwd: all authentication tokens updated successfully. ← 密码设置成功

#添加freedo用户到wheel组
usermod -G wheel freedo

::: tip 【以下步骤都登录到 freedo 用户进行操作】 :::

2. 【可选,如果网络配置正常请跳过此步骤】网卡自动启动

Kylin V10 Server SP2 安装成功之后,默认网卡是禁用状态,需要配置网卡自动启用。
# 查看网卡信息
sudo ifconfig

# 根据获取的网卡信息,把以下命令中的ens192改为实际中的网卡名称
sudo nmcli con mod ens192 connection.autoconnect yes

3. 处理系统防火墙

::: tip 选择下面的任意一种方法,处理系统自带 firewalld 防火墙 :::

可选方法一:关闭防火墙服务

sudo systemctl stop firewalld
sudo systemctl disable firewalld

可选方法二:通过防火墙放行相关端口

# 允许vnc访问
sudo firewall-cmd --zone=public --add-port=5900-5902/tcp --permanent

# 允许Cloud页面访问,默认8087/tcp端口,根据实际情况修改
sudo firewall-cmd --zone=public --add-port=8087/tcp --permanent

# 渲染程序连接的端口
sudo firewall-cmd --zone=public --add-port=8088/tcp --permanent
# 实例管理服务使用的端口
sudo firewall-cmd --zone=public --add-port=8089/tcp --permanent


# 允许P2P视频流传输
sudo firewall-cmd --zone=public --add-port=50000-65535/udp --permanent


# 允许中继服务访问,默认3478/tcp 3478/udp端口,根据实际情况修改
sudo firewall-cmd --zone=public --add-port=3478/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3478/udp --permanent

# 重载配置,然后查看配置状态
sudo firewall-cmd --reload
sudo firewall-cmd --list-port

Img

4. 【可选】配置 tigervnc

1. 安装配置 vncserver 服务

# 安装tigervnc服务端
sudo dnf makecache
sudo dnf install tigervnc-server tigervnc-server-module

# 配置为系统服务
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/
sudo sed -i 's+<USER>+freedo+g' /etc/systemd/system/vncserver@.service
sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service

2. 设置 freedo 用户的 vnc 密码

vncpasswd
#Password:
#Verify:
#Would you like to enter a view-only password (y/n)? n

3. 重启系统,确认 vnc 服务正常启动

Img

4. 使用 VNC Viewer 访问

::: tip VNC Viewer 下载地址: https://www.realvnc.com/en/connect/download/viewer/windows/ :::

Img Img

5. 安装配置 nvidia 显卡驱动

::: tip 驱动下载地址: https://www.nvidia.com/Download/Find.aspx?lang=en-us :::


1. 安装依赖包

sudo dnf install elfutils-libelf-devel libglvnd libglvnd-devel vulkan-loader vulkan-loader-devel

2. 屏蔽自带驱动

sudo touch /etc/modprobe.d/blacklist-nvidia-nouveau.conf
sudo bash -c "cat > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" << EOF
blacklist nouveau
options nouveau modeset=0
EOF

3. 显卡支持

sudo touch /etc/modprobe.d/nvidia.conf
sudo bash -c "cat > /etc/modprobe.d/nvidia.conf" << EOF
options nvidia NVreg_OpenRmEnableUnsupportedGpus=1
EOF

4. 重建 initramfs image

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)

5. 重启

sudo systemctl reboot

6. 停止 x windows 相关服务

sudo systemctl stop lightdm vncserver@\:1

7. 上传下载后的驱动文件到服务器

8. 为驱动文件添加执行权限

sudo chmod +x NVIDIA-Linux-x86_64-525.116.03.run

9. 运行文件安装驱动

sudo ./NVIDIA-Linux-x86_64-525.116.03.run -m=kernel-open

Img

Img

Img

::: danger 注意: 最后一步,提示是否自动配置 X Window 的时候,请选择"yes",否则会导致 vnc 无法调用独立显卡,从而无法运行 AirCityExplorer :::

Img

10. 再次重启

sudo systemctl reboot

11. 重启之后执行命令nvidia-smi确定显卡驱动状态

Img

三、上传安装包到服务器任意目录并解压

1. 创建部署目录

sudo mkdir /deploy
sudo chown -R freedo.freedo /deploy

2. 上传安装包 AirCityCloud_x86_0529.zip 到/deploy

3. 解压安装包

unzip AirCityCloud_x86_0529.zip

四、申请 License

1. 使用 PCIdentifier 工具生成机器码

cd /deploy/AirCityCloud/
./PCIdentifier

Img

2. 提供机器码给飞渡,申请授权文件

Img

3. 拿到授权文件,重命名并复制到指定目录

Img

# 假如授权文件名称为68887736D6C4901B9F99B-cloud.lic,并且已上传到/deploy目录

cd /deploy

# 重命名授权文件为License.lic
mv 68887736D6C4901B9F99B-cloud.lic License.lic

# 放置授权文件到指定目录
mv License.lic AirCityCloud/CloudServer/

五、拷贝依赖库到指定目录

拷贝依赖库到指定目录

X86架构

cd /deploy/
cd AirCityCloud/dep/dll/
cp lib* ../../CloudRenderer/AirCityExplorer/Binaries/Linux/

ARM64架构

cd /deploy/
cd AirCityCloud/dep/dll/
cp lib* ../../CloudRenderer/AirCityExplorer/Binaries/LinuxAArch64/

六、 执行脚本 startCloudServer.sh 启动集群管理服务 CloudServer

1. 修改配置文件 AirCityCloud/CloudServer.conf

  1. 修改 serverIP 变量为本机 IP 地址 Img
  2. 【可选】修改服务端口,默认 8087/tcp Img

2. 执行脚本,启动集群管理服务

cd /deploy/
cd AirCityCloud/

./startCloudServer.sh

Img

3. 【可选】配置为systemd服务,并开机启动

cd /deploy/
cd AirCityCloud/

# 先停止脚本直接启动的服务
./stopCloudServer.sh

# 执行脚本自动配置服务
cd dep/
./makeService_CloudServer.sh

# 启动CloudServer服务
sudo systemctl start AirCityCloudServer.service

# 查看CloudServer服务状态
sudo systemctl status AirCityCloudServer.service

Img

3. 访问实例管理页面[无渲染实例]

Img

七、 执行脚本 startNodeServcie.sh 启动单个渲染实例

::: danger 子节点只需要启动本 NodeService 服务,不需要启动 CloudServer 以及中继服务 :::

1. 修改配置文件 AirCityCloud/NodeService.conf,使渲染节点加入到集群管理服务中

::: tip 1、 修改 serverIP 变量为集群管理服务的 IP 地址 2、 修改 serverPort 变量为集群管理服务的端口 :::

Img

2. 执行脚本,启动渲染实例

cd /deploy/
cd AirCityCloud/

./startNodeService.sh

Img

3. 【可选】配置为systemd服务,并开机启动

cd /deploy/
cd AirCityCloud/

# 先停止脚本直接启动的服务
./stopNodeService.sh

# 执行脚本自动配置服务
cd dep/
./makeService_NodeService.sh

# 启动NodeService服务
sudo systemctl start AirCityNodeService.service

# 查看NodeService服务运行状态
sudo systemctl status AirCityNodeService.service

Img

4. 添加工程数据并访问

  1. 上传工程数据到服务器上
  2. 点击"设置参数",打开实例设置界面 Img
  3. 复制粘贴之前上传的 acp 工程的绝对路径到工程空白框中 Img
  4. 点击确定,然后本实例就会自动启动 Img
  5. 点击"视频流测试",然后就可以跳转到视频流页面 Img

八、 【可选项】安装中继服务[在需要跨网段访问的 cloud 服务的环境下,就需要部署中继 coturn 服务]

::: tip coturn 是一个基于 TURN(Traversal Using Relay NAT)协议实现的用于在 NAT 网络下进行实时音视频通信的服务器软件。在网络层中,NAT 路由器会将源 IP 地址重写为自己的公网 IP 地址,而 TURN 服务器则可以通过中继数据包的方式,将经过 NAT 路由器的音视频数据转发到目标客户端,实现穿越 NAT 的效果,从而保证实时音视频通信的顺畅和稳定。

coturn提供了一个开源的免费实现,支持以下特性:

1. IPv4和IPv6网络的支持。

2. 高可用性和负载均衡的支持。

3. 证书验证和加密传输的支持。

4. 远程管理和监控的支持。

5. WebRTC(Web Real-Time Communications)的支持。

6. 简单可扩展的支持。

coturn适用于WebRTC、VoIP等网络通信应用,也可以作为一个代理服务器提供中间服务,增强网络连接稳定性与可靠性。

:::

1. 安装 docker 服务

sudo dnf install docker
sudo systemctl enable docker
sudo systemctl start docker

# 使freedo用户可运行docker
sudo usermod -aG docker freedo
newgrp docker

Img

2. 上传镜像到服务器

x86 架构镜像: https://installpackages.gbim.vip/docker_update/coturn-latest-amd64-20230510.tar.gz aarch64 架构镜像: https://installpackages.gbim.vip/docker_update/coturn-latest-arm64-20230511.tar.gz

3. 挂载镜像

tar zxvf coturn-latest-amd64-20230510.tar.gz
docker load < coturn-latest-amd64-20230510.tar

Img

4. 编辑启动脚本,然后启动服务

cd /deploy
mkdir coturn
cat > start_coturn.sh << "EOF"
docker run -d \
--name freedo-coturn-01 \
--restart=always \
-e DETECT_EXTERNAL_IP=yes \
-e DETECT_RELAY_IP=yes \
-p 3478:3478 \
-p 3478:3478/udp \
-p 5349:5349 \
-p 5349:5349/udp \
-p 48100-48200:48100-48200/udp \
coturn/coturn:latest-amd64 \
-n --log-file=stdout \
--min-port=48100 \
--max-port=48200 \
--user=freedo:freedo \
--realm=feidu \
--lt-cred-mech
EOF

# 授予脚本执行权限
chmod +x start_coturn.sh

# 启动脚本
./start_coturn.sh

# 查看服务是否正常
sudo docker ps

:::tip 若架构为ARM64,修改start_coturn.sh中的coturn/coturn:latest-amd64coturn/coturn:latest-arm64,然后执行命令docker rm -f freedo-coturn-01,重新执行脚本./start_coturn.sh :::

Img

5. 配置 AirCityCloud/Config/TurnServer.conf 配置文件,启用中继服务

Img

1. 修改turnServerPort变量为上一步启动的中继服务的端口,默认3478
2. 修改useTurnServer变量,yes表示启用中继服务,no表示不启用
3. 修改turnProtocol变量,默认使用udp协议进行数据转发

6. 重启服务使中继服务配置生效

sudo systemctl restart AirCityCloudServer.service

九、【可选】配置Https访问

1. 申请证书,推荐腾讯云免费证书

2. 申请完成之后,下载nginx证书

Img

3. 上传下载的证书到服务器任意目录,并解压

Img

4. 配置AirCityCloud/Config/Https.conf配置文件,启用Https服务

Img

5. 重启服务使Https配置生效

sudo systemctl restart AirCityCloudServer.service

6. 使用https访问集群管理页面

Img Img


十、【可选】KylinV10 系统配置 nfs

:::danger 本文档中的用户的 uid 为 9988 gid 为 9988 共享目录和挂载目录均为 /deploy/shareData KylinV10Server 默认已安装 nfs-utils 和 rpcbind

以上参数根据系统实际情况进行灵活修改 :::

1、环境准备

IP 功能
192.168.20.145 NFS 服务端
192.168.20.139 NFS 客户端

2、启动 NFS 服务

  1. 配置防火墙【若 firewalld 已禁用,跳过本步骤】
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload
  1. 创建共享目录并授权
mkdir /deploy/shareData
chmod 777 /deploy/shareData
  1. 修改 nfs 配置文件
# anonuid=9988,anongid=9988 若客户端用户的uid/gid有变化,请自行修改
sudo bash -c "cat >> /etc/exports" << "JIESHU"
/deploy/shareData 192.168.20.0/24(rw,sync,insecure,no_subtree_check,no_root_squash,anonuid=9988,anongid=9988)
JIESHU
  1. 启动 nfs 服务,并配置开机启动
sudo systemctl start nfs.service
sudo systemctl enable nfs.service

3、客户端挂载 NFS 共享目录,并配置开机自动挂载

  1. 确认可正常访问共享
showmount -e 192.168.20.145
  1. 配置开机自动挂载
mkdir /deploy/shareData

sudo bash -c "cat >> /etc/fstab" << "JIESHU"
192.168.20.145:/deploy/shareData /deploy/shareData nfs4 defaults 0 0
JIESHU
  1. 挂载目录
sudo mount -a
sudo df -hT
  1. 测试
# 服务端
cd /deploy/shareData
touch ThisIsServer

# 客户端
cd /deploy/shareData
touch ThisIsClient

十一、常见问题

1. 实例无法启动

  1. 检查是否已申请授权,并重命名为 License.lic,并放置到指定目录
  2. 检查是否使用拥有 sudo 权限的普通用户运行 CloudServer 和 NodeService
  3. 检查是否安装 vulkan 相关 rpm 包
  4. 集群环境下,若实例一直处于 starting 状态,尝试先停止实例,再启动实例

2. 无法访问页面

  1. 检查服务是否正常启动 检查命令ps -ef|grep AirCityCloud Img
  2. 检查系统防火墙是否关闭,或者放行 cloud api 的端口,默认 8087/tcp Img

3. player 页面正常的情况下无法获取视频流

问题描述: 卡在以下画面无法获取视频流

Img Img

排查步骤:

  1. 未使用中继服务的情况下,请确认已完成系统防火墙的配置
  2. 通过浏览器打开 webrtc 调试地址 chrome://webrtc-internals/,获取 webrtc 调试信息,确认访问中继服务的地址是否正确 Img
  3. 确认中继服务正常启动 Img
  4. 确认从服务器本地可以访问映射之后的中继服务端口 Img
  5. 确认客户机可以联通中继服务端口而不是被防火墙拦截 Img

4. 实例卡死、性能问题

  1. 使用htop命令排查 cpu,查看各个 cpu 核心使用率

::: tip htop 命令系统没有自带,请单独安装。 :::

wget https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/Packages/htop-3.0.5-4.ky10.x86_64.rpm
sudo dnf localinstall ./htop-3.0.5-4.ky10.x86_64.rpm htop

Img 2. 使用nvidia-smi命令查看显卡运行状态 Img 3. 使用free -m命令查看内存使用 Img

5. 中继服务无法访问问题

::: tip 有些服务器修改了内核参数 net.ipv4.ip_forward=0,关闭了IPv4转发,导致无法访问容器端口,从而无法访问容器部署的中继服务 :::

  • 修复方式

  • 修改/etc/sysctl.conf ```bash sudo vi /etc/sysctl.conf

net.ipv4.ip_forward=1

2. 执行命令重载内核参数
```bash
sudo sysctl -p
  1. 重启docker服务
    sudo systemctl restart docker
    

results matching ""

    No results matching ""