WSFC 羣集編排任務計劃

任務計劃是操做系統中重要的組件,經過任務計劃,電腦能夠自動幫助咱們在某條件下觸發某操做,以完成任務shell


對應到現實生活相似於如今的智能電飯鍋,你天天早上須要吃早餐,可是又不想作,就用智能電飯鍋作了個定時操做,天天早上七點,用小火幫我煮好粥,到點起來吃就能夠了,操做系統中的任務計劃也是相通的概念,意義在於經過電腦自動幫助咱們完成任務,不用每次親力親爲後端


任務計劃一般被用於操做系統或後端的應用程序,例如按期執行審覈收集腳本,按期生成硬件報告,按期處理應用程序緩存,等等緩存


高級電腦用戶能夠用任務計劃,自動幫助咱們執行某事,例如你知道今天下午三點要作某事,可是你三點有事不在,就能夠作個任務計劃,到時間電腦自動幫你完成服務器

企業IT管理員能夠用任務計劃,幫助咱們來完成自動化的服務器收集監視,或須要重複性執行的操做異步

應用開發人員能夠用任務計劃,按期自動執行應用程序所需配置,例如按期啓動某個exe,按期處理某個緩存ide


當咱們提任務計劃,一般咱們是指計劃某事,而後作某事,而不只僅是計劃,所以電腦中的任務計劃與日曆提醒有所區別,所謂的提醒軟件只是提醒你去作某事,但不會幫你去作工具


任務計劃在Windows Server 上面和Windows Client 上面都有,最先老王記得Server 2000上面就曾看到過,那時它叫作任務計劃,一直到2003,2003任務計劃和2000時代並不太大差異,當建立任務計劃時會跑一個嚮導,能夠指定任務要執行的程序,運行任務的週期,天天,每週,每個月,一次性,計算機啓動時,登陸時,執行任務密碼,建立完成後任務計劃能夠在控制面板-任務計劃文件夾下看到性能


到了Sever 2008和vista時代,任務計劃獲得了加強,更名爲任務計劃程序,移至管理工具中,裏面將任務計劃更明確的劃分爲 觸發器 - 操做 - 條件 三個層級,知足什麼觸發前提下觸發任務計劃,觸發以後要執行什麼操做,執行操做以前有哪些條件須要知足,例如能夠設定只在操做系統空閒時間執行等等,對於界面上面顯示也更加友好,支持顯示任務歷史執行記錄,支持導出任務,導入任務spa


在那個時代不像如今,那時微軟尚未powershell3.0,DSC,SCO這些強大的自動化工具,那時微軟自身並無太多自動化工具,所以,若是管理員須要執行一些自動化管理操做,一般會選擇ps1+任務計劃,VBS+任務計劃,BAT+任務計劃,寫好一個腳本,而後配合任務計劃,按期執行操作系統


到了Powershell 3.0,Windows Server 2012,任務計劃程序獲得了更進一步的加強,支持直接經過Powershell去管理建立任務計劃,更加的靈活方便


示例:


註冊任務計劃操做,已註冊的Job不會由於Powershell的控制檯關閉而消失

Register-ScheduledJob -Name querydriver -ScriptBlock  {driverquery }


建立任務計劃操做變量

$job=Get-ScheduledJob -Name querydriver


建立任務計劃觸發器

下午七點半執行,每隔五天執行一次

$jobtrigger=New-JobTrigger -Daily -At "19:30 PM" -DaysInterval 5


爲任務計劃操做分配觸發器

$job=Get-ScheduledJob -Name querydriver | Add-JobTrigger -Trigger $jobtrigger


Powershell建立的任務計劃將在後臺異步執行,一樣也是底層調用了任務計劃,只不過經過powershell包上一層,管理起來更加靈活,建立完成的任務計劃能夠在任務管理程序 taskschd.msc 裏面看到,Powershell 建立的任務計劃位於Windows - Powershell - ScheduledJobs文件夾

2018-02-07_091857.png


查看任務計劃

Get-ScheduledJob -Name querydriver


刪除任務計劃

Get-ScheduledJob -Name querydriver  | Unregister-ScheduledJob


禁用任務計劃

Get-ScheduledJob -Name querydriver | Disable-scheduledjob


以上爲你們簡單講了下任務計劃前因後果,以及最新2012開始對於Powershell管理的支持,下面咱們切入主題,羣集編排任務計劃


也是在2012動態數據中心時代新增進來的功能,雖然咱們有了經過powershell管理任務計劃的功能,可是這隻能在單臺機器執行,若是是一個大規模羣集的話,須要將任務計劃複製到其它節點才能夠,若是節點過多也過於麻煩,經過羣集編排任務計劃,提供了三種在羣集內編排任務計劃的方法


任何節點:將任務計劃註冊到羣集中,執行程序放在羣集共享磁盤,當到達觸發條件時會在任意1個節點上執行任務計劃,適用於對於羣集審覈日誌,報告收集,應用程序預熱等需求,我不須要在每一個節點上面執行,只要有一個節點執行了就好,若是上次執行的節點宕機,下次會挑選其它的正常節點執行。


資源特定:將任務計劃註冊到羣集中,執行程序放在羣集共享磁盤,當到達觸發條件時,自動針對於羣集的指定資源執行,該類型任務計劃與羣集資源綁定,資源遷移到那個節點,任務計劃就在那個節點執行,若是資源被刪除,則任務也被刪除,適用於針對羣集磁盤執行碎片整理操做,默認狀況下對於CSV,永遠不會執行磁盤整理操做,若是您在CSV上面存放了大量動態VHDX,建議您建立一個此類型的編排任務,按期自動執行磁盤整理,將幫助CSV提高性能。


羣集範圍:將任務計劃註冊到羣集中,執行程序放在羣集共享磁盤,當到達觸發條件時,任務計劃程序將在全部有效的羣集節點上執行,例如若是您但願在登陸到任何節點時要打開一個或一組工具,則能夠將這種任務添加爲羣集範圍任務


羣集編排任務從2012開始引入至今,目前仍是隻能經過powershell方式管理,全部羣集編排任務的管理命令以下


Get-ClusteredScheduledTask        查詢集羣任務

Register-ClusteredScheduledTask 註冊集羣任務

Set-ClusteredScheduledTask         更新已經註冊的集羣任務

Unregister-ClusteredScheduledTask 取消註冊羣集任務


本例老王以建立一個資源特定類型的羣集編排任務計劃爲例


1.建立編排操做

$action = New-ScheduledTaskAction - Execute C\ClusterStorage\Volume2\1.bat


內容以下,老王實做了CSV的碎片整理,因爲屬於羣集磁盤,所以對於CSV執行磁盤整理命令前需置爲重定向模式,整理結束後再行恢復

2018-02-07_094829.png


2.建立編排觸發器,每週週五晚上十一點執行

$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Friday -At "23:00"


3.將編排操做,編排觸發器註冊至羣集編排任務

Register-ClusteredScheduledTask –Cluster hvclus –TaskName csvdefrag –TaskType ResourceSpecific –Resource "羣集磁盤3"–Action $action –Trigger $trigger


TaskType其餘類型參數:AnyNode  ,ClusterWide,註冊後不可變動編排任務類型

2018-02-07_095441.png


通過羣集編排註冊的任務計劃會顯示在任務計劃程序-Windows -Failover Clustering文件夾中,此文件夾在未建立羣集編排任務計劃前處於隱藏狀態,建立編排任務後顯示,雖然UI界面也能夠建立任務,可是UI界面建立的任務計劃無羣集編排效果,僅用做單機,當節點被羣集逐出後,全部該文件夾的任務都將被刪除


2018-02-07_095511.png

建立完成羣集編排任務後,能夠看到,資源特定類型的編排任務僅在資源全部者節點爲準備就緒狀態,其它節點上也會顯示羣集編排任務,但爲禁用狀態

2018-02-07_095931.png


移動資源至12HV02後,羣集編排任務計劃在12HV01上面禁用,12HV02上面就緒


2018-02-07_100032.png


2018-02-07_100016.png


任意節點類型編排任務,將隨機在一個節點上面就緒,若是該節點宕機,則尋找其它正常節點就緒

羣集範圍類型編排任務,將在全部節點上面就緒,達到觸發器條件時,全部節點一塊兒執行,若是節點從羣集被逐出,則編排任務將自動刪除


老王這裏把羣集編排任務計劃的操做程序放在羣集共享磁盤中,是處於高可用考慮,您也能夠嘗試把操做程序放在全部節點本地磁盤相同位置


查詢羣集內全部編排任務計劃

Get-ClusteredScheduledTask –Cluster hvclus


查詢羣集內特定資源類型編排任務計劃

Get-ClusteredScheduledTask –Cluster hvclus –TaskType ResourceSpecific


查詢羣集內特定名稱的編排任務計劃

Get-ClusteredScheduledTask –Cluster hvclus –TaskName csvdefrag


更新羣集編排任務計劃


變動觸發器條件

$trigger = New-ScheduledTaskTrigger -At 22:00  -Daily

更新編排任務計劃

Set-ClusteredScheduledTask –Cluster hvclus–TaskName csvdefrag -Trigger $trigger


查詢編排任務計劃觸發器條件

(Get-ClusteredScheduledTask -TaskName csvdefrag).TaskDefinition.Triggers


取消註冊羣集編排任務計劃,取消後任務將從各節點刪除

Unregister-ClusteredScheduledTask -Cluster hvclus -TaskName csvdefrag

相關文章
相關標籤/搜索