前面幾天在介紹Mesos Framework Marathon的安裝、操作和使用,以及Mesos DNS找到Service的IP位址在哪裡…等等,Mesos還有很多其它的功能操作。
今天來介紹Mesos的資源保留,為什麼要有資源保留的功能?因為有些系統需要一定量的資源,如果沒有設定資源預留有可能被其它的framework占走資源,而造成系統無法啟動。另外一個需求是系統可能不需要太大的資源,而可以去限制保留資源少一點,剩下的資源給其它的framework去使用,Mesos提供的資源保留可以使用二種的方法,靜態保留和動態保留。
在說明這二種方法之前先介紹一個在mesos上常看到的名詞role
role是一個角色,在framework啟動時可以指定role的名稱,如果沒有指定就是default通常會用星號表示,例如在啟動marathon framework時可以指定role的名稱,指令如下:
./start --master zk://192.168.182.132:2181,192.168.182.130:2181, 192.168.182.131:2181/mesos_master --zk zk://192.168.182.132:2181, 193.192.168.182.130:2181,192.168.182.131:2181/marathon --mesos_role marathon
上面的指令就是在啟動marathon framework時指定role的名稱為marathon
靜態保留:
在啟動mesos的slave時就要先指定role需要幾個cpu core、記憶體數量…等等的資源配置,如果沒有指定的role就使用default的資源,資源分配的方式如下圖:
host1分配marathon role為2個CPU Core、spark role為1個CPU Core、default的role為1個CPU Core
host2分配marathon role為1個CPU Core、spark role為2個CPU Core、default的role為2個CPU Core
用host為單位的分配資源
動態保留:
靜態資源分配有個問題就是如果要修改其中的資源分配,就須要重啟Mesos Slave,而造成操作上的不方便,動態資源保留可以透過Restful的方式動態調整資源的分配,就保留的資源轉為非保留的資源或是將非保留的資源轉為保留的資源,使得在操作資源上更加的靈活。
資源的保留可以使得每個角色都得到資源,但是如果沒有分配好的話有可能造成資源使用率低,使得會發生資源浪費的問題,接下來的幾1到2天會介紹實際的設定靜態資源和動態資源的部份。
參考資料:
Mesos資源保留:http://mesos.apache.org/documentation/latest/reservation/