What & How & Why

Hqueue

Note for Hqueue


安装

License Server

该 Server 并无操作系统,Houdini 子版本的限制(大版本需要匹配)。可以选择 Windows。

  1. 正常安装并激活
  2. 修改计算机名方便之后的访问
  3. 修改 Windows 的 Hosts 文件对服务器进行域名解析,方便之后的访问。这里的解析最好包括农场内的所有工作点。Hosts 文件的位置:

C:\Windows\System32\drivers\etc\
简单的配置文件:
#example of a hosts configuration

127.0.0.1 hs 			# hs is the name of the license server
192.168.1.54 hs 		# LAN address of hs
192.168.1.100 rabbit	# HQUEUE & Shared folder Server
192.168.1.101 hare		# workstation
192.168.1.103 hta		# render node 1
192.168.1.105 htb		# render node 2
192.168.1.107 htc 		# render node 3
192.168.1.109 htd		# render node 4
192.168.1.111 hte 		# render node 5

Houdini launcher 可能需要的界面库

sudo dnf -y install xcb-util-wm
sudo dnf -y install xcb-util-image
sudo dnf -y install xcb-util-keysyms
sudo dnf -y install xcb-util-renderutil
Ref: Qt for Linux/X11

HQueue Server

PS: 最新的19.5版本已经提供了新版本的 HQUEUE,使用安装包直接安装即可(Launcher 的依赖依旧是个迷)

当前 houdini 版本为 19.0.622,当前 HQUEUE 的版本实际上是 18.5.696,因此不建议使用 Houdini Launcher 进行安装(BUG 实在太多)。houdini-18.5.696-linux_x86_64_gcc6.3.tar.gz 这个版本仍然有安装文件(不要下载 python3的版本)

该部分需要进行两部分的设置:

  • Hqueue server
  • file shared server

由于实现的原因,高版本的 redhat 环境下 hqueue server 的调用存在错误,因此采用手动设置文件夹共享。

安装 hqueue server

将 houdini 安装包解压到指定位置,然后运行:

./hqueue.install
选择 hqserver 的安装,按照提示一路按默认即可,在安装程序询问是否要创建共享文件夹时选否。

设置 hosts 文件

linux 下的 hosts 文件存在于:

/etc/hosts
直接加入之前的 hosts 内容即可。需要将本地 ip 对应的 name 改为服务器名字:
127.0.0.1 rabbit #rabbit is hqserver name

设置共享文件夹

此处以 NFS 的挂载方式来设置共享文件夹。首先,关闭防火墙(如果需要自定义 ACL 可以设置白名单):

systemctl stop firewalld #stop firewall service
systemctl disable firewalld #remove firewall service
然后安装 NFS 服务(服务端 / 客户端):
dns -y install nfs-utils #install nfs service
然后在服务端设置需要共享的文件夹:
sudo nano /etc/exports #NFS shared folder configuration file
并指定该文件夹的权限:
/mnt/hq 192.168.1.100 *(rw, sync, no_root_squash)
上面指定了服务端上的 /mnt/hq/ 目录为共享目录,可读写,会同步,并且客户端的 root 不受该目录权限的约束。需要注意 * 号可以解决 access denied by server 的问题。

/mnt/hq 可为任意共享文件夹。此处由于我的 cache 是一块独立的 ssd,因此将其加载到了 /mnt/hq,再通过将其共享到客户端上的 /mnt/hq 使用。

设置完毕之后,重启 NFS 服务,并开启 RPC 服务:
systemctl restart nfs-server
systemctl enable nfs-server #auto start
systemctl start rpcbind
systemctl enable rpcbind #auto start
此时可以在客户端测试:
showmount -e 192.168.1.100
出现以下的信息证明共享已经开启:
Export list for 192.168.1.100:
/mnt/hq (everyone)
此时在客户端完成挂载:
mount -t nfs 192.168.1.100:/mnt/hq/ /mnt/hq/
dh -h #check if the mounting exsits
到此设置完毕。如果需要让客户端开机自动挂载的话,需要编辑客户端的 /etc/fstab 文件:
nano /etc/fstab
添加下方的命令:
192.168.1.100:/mnt/hq /mnt/hq nfs defaults 1 1

安装 houdini 客户端

farm 中所有的客户机都需要共享一份 houdini 的文件,这些文件的位置被称为 Target HFS。通常做法是将该文件安装到 file shared server 中,便于客户端调用。

Hqueue 的维护

服务端的重启

cd /opt/hqueue
./scripts/hqserverd restart

客户端的重启

cd /home/hquser/hqclient
./hqcliented restart