操作手冊(cè)
渲管與各云產(chǎn)品的依賴如下圖所示。
A) 渲管與各云產(chǎn)品的詳細(xì)關(guān)系
B) 渲管系統(tǒng)內(nèi)部結(jié)構(gòu)
render manager: 基于 flask 框架開(kāi)發(fā)Web 應(yīng)用,主要負(fù)責(zé)和用戶進(jìn)行人機(jī)交互,接收用戶請(qǐng)求。
render master:后臺(tái)背景進(jìn)程,根據(jù)人機(jī)交互的結(jié)果進(jìn)行作業(yè)提交以調(diào)度。
本地?cái)?shù)據(jù)庫(kù):主要存放用戶提交的渲管請(qǐng)求,待渲管任務(wù)結(jié)束后自動(dòng)刪除該信息。
2. 渲管的部署
在阿里云云市場(chǎng)有已安裝了渲管的 ECS 鏡像免費(fèi)售賣,在啟動(dòng) ECS 實(shí)例時(shí),將鏡像指定為鏡像市場(chǎng)中的 rendermanager,啟動(dòng)即可使用。
A) 獲取渲管鏡像
官方渲管鏡像:RenderManager 鏡像,創(chuàng)建 ECS 實(shí)例時(shí),選擇鏡像市場(chǎng),直接搜索以上關(guān)鍵字即可獲取。自定義渲管鏡像:基礎(chǔ)鏡像建議采用 Ubuntu 14.04 64 位,按照以下步驟安裝渲管系統(tǒng)。
# 安裝 flask
sudo apt-get install python-flask -y
# 安裝 uwsgi
sudo apt-get install uwsgi uwsgi-plugin-python -y
# 安裝 nginx
sudo apt-get install nginx –y
# 修改 nginx 配置,在 http 模塊里添加新的 server
#
# server {
# listen 1314; #listen port
# server_name localchost;
# location / {
# include uwsgi_params;
# uwsgi_pass 0.0.0.0:8818;#this must be same app_config.xml
# }
# }
#
vi /etc/nginx/nginx.conf
# 啟動(dòng) nginx 或重啟
nginx
# 獲取最新版渲管
wget http://openrm.oss-cn-qingdao.aliyuncs.com/render_manager_release/latest/rm.tar.gz
# 解壓
tar –xf rm.tar.gz
# x.x.x 為版本號(hào)
cd rm-x.x.x
# 指定安裝目錄部署
python deploy.py /root/rm_install/
# 啟動(dòng)
cd /root/rm_install/rm_install_s && python rm_cmd.py start
# 登錄渲管 http://installed_machine_ip:1314/rm/login
# 初始賬號(hào): rm_admin 密碼: rm_admin@123
# 若監(jiān)聽(tīng)在公網(wǎng),建議采用https
B) 開(kāi)通 ECS 實(shí)例
請(qǐng)指定某 ECS 實(shí)例部署渲管系統(tǒng),配置參數(shù),請(qǐng)參考Linux系統(tǒng)實(shí)例快速入門(mén)
公網(wǎng) IP 地址選擇分配。
鏡像市場(chǎng): RenderManager 或者自定義鏡像
設(shè)置密碼
3. 渲管系統(tǒng)升級(jí)
頁(yè)面右上角的版本信息中可以查看是否有可升級(jí)的新版本,第一次使用渲管前,建議升級(jí)到最新版本后再使用渲管(每次只能升級(jí)到下一版本,所以升級(jí)后請(qǐng)查看是否已是最新版本)。
4. 渲管系統(tǒng)配置
配置頁(yè)面里有渲管系統(tǒng)的各種系統(tǒng)設(shè)置。第一次使用渲管時(shí),必須設(shè)置SECURITY_ID,SECURITY_KEY,OSS_BUCKET 三個(gè)值,不然渲管無(wú)法使用。
SECURITY_ID 和 SECURITY_KEY 即阿里云賬號(hào)的 AccessKeys 信息,可以在阿里云官網(wǎng)控制臺(tái)創(chuàng)建。
OSS_BUCKET 可以在 OSS 的控制臺(tái)創(chuàng)建,用于存儲(chǔ)渲管自身的 worker 包已經(jīng)渲染數(shù)據(jù)。
渲管默認(rèn)使用青島(華北1)區(qū)域,如果使用其他區(qū)域的 BatchCompute,請(qǐng)修改配置中的OSS_HOST(OSS_BUCKET 必須與 OSS_HOST 屬于同一個(gè)region)與 BATCHCOMPUTE_REGION,每個(gè) REGION 的 OSS_HOST 也可以咨詢產(chǎn)品團(tuán)隊(duì)獲取。 區(qū)域的選擇和計(jì)算節(jié)點(diǎn)的鏡像區(qū)域保持一致,若計(jì)算節(jié)點(diǎn)鏡像在深圳區(qū)域,則渲管的區(qū)域信息也必須是深圳,同時(shí) OSS BUCKET 也必須是該 REGION 下的 BUCKET;若使用批量計(jì)算官方提供的計(jì)算節(jié)點(diǎn)鏡像則需要選擇深圳 REGION。
其他配置項(xiàng),請(qǐng)參考頁(yè)面上的說(shuō)明。
5. OSS數(shù)據(jù)上傳
提交渲染作業(yè)前,一定要將渲染用到的數(shù)據(jù)上傳 OSS,在計(jì)算節(jié)點(diǎn)啟動(dòng)后再上傳的數(shù)據(jù)將不能在計(jì)算節(jié)點(diǎn)中訪問(wèn)到。
自定義鏡像
由于 OSS 頁(yè)面控制臺(tái)上傳數(shù)據(jù)有大小限制,所以上傳數(shù)據(jù)建議使用 OSS 的 osscmd下線說(shuō)明(類Linux系統(tǒng))、windows 客戶端或者 MAC 客戶端 。
參考 更多 OSS工具 。
6. 計(jì)算節(jié)點(diǎn)鏡像制作
渲染客戶如希望定制計(jì)算節(jié)點(diǎn)鏡像。
7. 計(jì)算節(jié)點(diǎn)鏡像管理
A) 添加計(jì)算節(jié)點(diǎn)鏡像
在鏡像管理頁(yè)面,可以添加計(jì)算節(jié)點(diǎn)鏡像 ID。
B) 給計(jì)算節(jié)點(diǎn)鏡像配置渲染軟件信息
在添加完計(jì)算節(jié)點(diǎn)鏡像 ID 后,在鏡像信息頁(yè)面可以點(diǎn)擊添加軟件并配置軟件信息。
在配置軟件信息時(shí),需要填入渲染軟件的名稱,渲染文件的后綴(用于識(shí)別渲染文件)以及執(zhí)行代碼。
執(zhí)行代碼(要求 python 語(yǔ)法)會(huì)在渲管 worker 中執(zhí)行,render_cmd 變量即渲染時(shí)的命令行,命令行應(yīng)根據(jù)實(shí)際安裝的渲染軟件來(lái)填寫(xiě),比如渲染軟件的路徑,以及一些參數(shù)。渲管中的模板只是個(gè)示例,實(shí)際使用需要微調(diào)。
渲管已經(jīng)預(yù)定義了一些變量和函數(shù),在執(zhí)行代碼中可以調(diào)用這些變量和函數(shù),例如$CPU
在執(zhí)行期會(huì)被替換成實(shí)際的cpu核數(shù),$START_FRAME
在執(zhí)行期會(huì)被替換成起始幀號(hào)。
如果想增加自定義參數(shù),可以選擇添加參數(shù),添加的自定義參數(shù)會(huì)需要在提交作業(yè)時(shí)填入。關(guān)于所有的可用變量可在軟件配置頁(yè)面點(diǎn)擊查看。
$OUTPUT_LOCAL_DIR
這個(gè)變量即創(chuàng)建項(xiàng)目時(shí)配置的節(jié)點(diǎn)內(nèi)臨時(shí)輸出路徑,渲染的輸出結(jié)果應(yīng)該放在該路徑下(大部分渲染器都支持在命令行中指定輸出路徑),在渲染結(jié)束后該目錄下的數(shù)據(jù)會(huì)被傳輸?shù)?OSS。
8. 項(xiàng)目管理
A) 項(xiàng)目創(chuàng)建
創(chuàng)建項(xiàng)目時(shí)需要指定 OSS 數(shù)據(jù)映射,計(jì)算節(jié)點(diǎn)鏡像,虛擬機(jī)內(nèi)的臨時(shí)輸出路徑,OSS 輸出路徑。
i. 計(jì)算節(jié)點(diǎn)鏡像
創(chuàng)建項(xiàng)目時(shí)選擇的計(jì)算節(jié)點(diǎn)鏡像(需要先在鏡像管理頁(yè)面添加計(jì)算節(jié)點(diǎn)鏡像)是提交 AutoCluster 作業(yè)時(shí)使用的鏡像,如果提交作業(yè)時(shí)指定了集群(在集群管理頁(yè)面可以創(chuàng)建)則作業(yè)直接跑在所指定的集群中。
ii. OSS數(shù)據(jù)映射
OSS 數(shù)據(jù)映射(或者稱 OSS 數(shù)據(jù)掛載),可以將 OSS 上的數(shù)據(jù)映射到計(jì)算節(jié)點(diǎn)的本地路徑(windows 是盤(pán)符),一個(gè)作業(yè)中的所有計(jì)算節(jié)點(diǎn)可以共享訪問(wèn)到相同的數(shù)據(jù)。OSS 數(shù)據(jù)掛載有如下功能或限制:
映射的目的路徑必須根據(jù)計(jì)算節(jié)點(diǎn)鏡像實(shí)際的操作系統(tǒng)類型進(jìn)行填寫(xiě),否則會(huì)導(dǎo)致掛載失敗,windows 只能映射到盤(pán)符(例 G:),linux 必須是絕對(duì)路徑。
可共享讀取訪問(wèn) OSS 上的數(shù)據(jù)。
不支持修改 OSS 上已存在的文件和文件夾名稱。
選擇 WriteSupport 后,支持本地(掛載路徑下)文件和文件夾的創(chuàng)建,以及新建文件的修改。
掛載的本地路徑里的改動(dòng)只是本計(jì)算節(jié)點(diǎn)可見(jiàn),不會(huì)同步到 OSS。
在 Windows 系統(tǒng)中,在掛載時(shí)刻已存在的文件夾中創(chuàng)建的文件或文件夾將不支持刪除操作,linux 系統(tǒng)可以。
選擇 LockSupport 后,將可以使用文件鎖功能(只影響 windows)。
OSS 數(shù)據(jù)掛載會(huì)有分布式cache(集群內(nèi)),所以在大規(guī)模并發(fā)讀取數(shù)據(jù)時(shí)性能較好(能達(dá)到 10MB~30MB,200 臺(tái)并發(fā),讀取 20G 數(shù)據(jù))。
OSS 路徑必須以’/’結(jié)尾。
iii. OSS 輸出目錄與臨時(shí)本地輸出目錄
渲染作業(yè)結(jié)束時(shí),計(jì)算節(jié)點(diǎn)中的臨時(shí)輸出目錄中的數(shù)據(jù)將會(huì)被傳輸?shù)?OSS 輸出目錄中。臨時(shí)輸出路徑格式必須與節(jié)點(diǎn)的操作系統(tǒng)類型對(duì)應(yīng),不然會(huì)出錯(cuò)。
B) 提交渲染任務(wù)
選擇目的集群和場(chǎng)景所在的 OSS 路徑前綴后進(jìn)入提交的詳細(xì)頁(yè)面,選中場(chǎng)景文件的上一級(jí)目錄,可以被提交渲染的場(chǎng)景文件則會(huì)被列出,勾選想要渲染的文件,選擇配置的渲染軟件和起止幀,即可提交渲染作業(yè)。
可指定節(jié)點(diǎn)數(shù)量,如果指定集群,并發(fā)數(shù)量上限是集群的節(jié)點(diǎn)數(shù)上限。填入的起止幀會(huì)均勻的分布在各個(gè)計(jì)算節(jié)點(diǎn)被渲染。
任務(wù)結(jié)束后可以在OSS上查看輸出結(jié)果,如果開(kāi)啟自動(dòng)下載(配置頁(yè)面設(shè)置),渲管會(huì)在任務(wù)結(jié)束后將OSS上的輸出結(jié)果下載到渲管部署的機(jī)器上。
C) 渲染日志
在節(jié)點(diǎn)列表頁(yè)面,點(diǎn)擊節(jié)點(diǎn)可以查看各種日志,渲管 worker 日志里都是渲管系統(tǒng) worker 的日志,里面可以查看該計(jì)算節(jié)點(diǎn)中運(yùn)行的實(shí)際渲染命令行。
渲染器標(biāo)準(zhǔn)輸出和渲染器標(biāo)準(zhǔn)輸出里的日志,就是渲染軟件的輸出日志。
9. 調(diào)試
新啟動(dòng)的渲管需要進(jìn)行配置,并進(jìn)行調(diào)試然后再提交大規(guī)模的渲染任務(wù)。
配置完,應(yīng)該先提交1幀測(cè)試任務(wù),查看錯(cuò)誤日志(渲管 worker 日志和渲染器標(biāo)準(zhǔn)輸出)調(diào)整渲染軟件配置(主要是修改渲染命令行),走通全流程并確認(rèn)結(jié)果沒(méi)有問(wèn)題后才進(jìn)行正式生產(chǎn)渲染。
當(dāng)作業(yè)失敗的時(shí)候可以在作業(yè)信息中查看失敗原因項(xiàng)。
建議創(chuàng)建一個(gè)集群然后將作業(yè)提交到該集群進(jìn)行調(diào)試(AutoCluster 的作業(yè)需要啟停計(jì)算節(jié)點(diǎn),比較費(fèi)時(shí))。
10. 集群管理
在集群管理頁(yè)面可以創(chuàng)建自定義集群,需要選擇所需的計(jì)算節(jié)點(diǎn)鏡像 ID,節(jié)點(diǎn)的實(shí)例類型(BatchCompute 的不同區(qū)域可能支持的實(shí)例類型和磁盤(pán)類型不同,詳情請(qǐng)咨詢產(chǎn)品團(tuán)隊(duì))。
磁盤(pán)類型和磁盤(pán)大小(根據(jù)實(shí)際制作的計(jì)算節(jié)點(diǎn)鏡像的磁盤(pán)大小選擇,選擇過(guò)小會(huì)導(dǎo)致無(wú)法啟動(dòng)計(jì)算節(jié)點(diǎn))。創(chuàng)建好的集群可以動(dòng)態(tài)調(diào)整節(jié)點(diǎn)數(shù)量,甚至調(diào)整數(shù)量到 0。