問題:
在啟動、關(guān)閉VPS的過程中可能遇到"VPS is locked"如何處理VPS被鎖定?
解決方案:
在VPS啟動、停止、備份、恢復等幾個典型的操作過程中,都會先把VPS鎖定當VPS處于鎖定狀態(tài)的時候,VPS是不能被其他程序操作的
以免其他操作和當前操作沖突當操作完成后,鎖定就會自動解除
例如,當VPS運行中時候,可以做備份操作;當VPS停止時候,也可以做備份操作
但是,當VPS處于鎖定狀態(tài)下,是不能做備份等操作VPS的鎖定是在必要的情況下的一種安全保護以啟動和停止為例,如果在啟動過程中,遇到一個程序卡住鎖死,無法正常啟動也無法正常退出
則可能造成整個VPS被卡住了
對于VPS自身而言,由于內(nèi)部的某個程序卡住,VPS無法跳過這一步驟,就自身無法順利啟動對于Virtuozzo節(jié)點而言,由于啟動沒完成,VPS還是鎖定中的,其他程序不能對VPS進行其他操作
這時候,就發(fā)生了"VPS is locked"的報錯現(xiàn)象
要解決這個問題,需要登錄到硬件節(jié)點,找到是哪個程序卡住了VPS,將出錯的進程殺掉
這樣,VPS即可繼續(xù)完成啟動、停止等操作如果不殺掉出錯的進程,理論上,只要等待足夠長的時間,讓有問題的進程發(fā)生了超時(timeout)
則VPS自己就會退出鎖定狀態(tài),恢復到正常狀態(tài)但是很多情況下等候幾十分鐘也未必能恢復正常狀態(tài),所以還是以手工中止進程為上。
例如服務(wù)器上報告VPS101被鎖定,那么登錄到硬件節(jié)點
用vzlist -a 命令檢查當前的vps列表和進程,得到如下結(jié)果:
C:>vzlist -a
VEID NPROC STATUS IP_ADDR HOSTNAME
1 24 running 192.168.1.1 VPS1
101 2 stopped 192.168.1.2 VPS23
102 35 running 192.168.1.3 PLESKWIN761
C:>
可看到編號為101的VPS的"Nproc"數(shù)字為2,即"Number of processes",當前運行的進程數(shù)為2一般來講,如果vps是停止狀態(tài),這個數(shù)字應該為0;如果vps是運行狀態(tài),這個數(shù)字應該是20以上只有兩個進程,則說明vps啟動的過程中可能發(fā)生錯誤被卡住了,才導致了vps被鎖定的報錯。
執(zhí)行vzquery v2s命令,調(diào)查有問題的vps的session id.
例如對于vps id為101的vps,執(zhí)行
C:>vzquery v2s 101
VPS ID: 101
Session ID: 2 (ROOT)
Session ID: 2
C:>
由此可以得到,凡是Session ID(會話ID為2)的進程,都屬于VPS101.
現(xiàn)在登錄到硬件節(jié)點,打開任務(wù)管理器,把所有會話ID都是2的進程給殺掉,即可解決問題。
默認情況下,任務(wù)管理器可能無法列出會話ID這個項目,此時可以點擊任務(wù)管理器上的菜單"查看"點擊"選擇列",此時會打開一個選項清單,左側(cè)倒數(shù)第二項,即可看到"會話ID".
選中會話ID點擊確定,任務(wù)管理器中就能列出每個進程的會話ID了
用鼠標點擊會話ID的標題欄,則可以按照會話ID數(shù)字的大小,進行排序現(xiàn)在即可列出所有會話ID是2的進程了在列出的會話ID是2的進程里邊,有些的運行者是System,有些是非System通常來講,只要把所有身份非System的進程都殺掉,VPS就可以恢復到正常狀態(tài)。
如果VPS是在啟動過程中卡住成為鎖定狀態(tài)的,殺掉有問題的進程后則使用vzlist -a命令可以看到vps內(nèi)啟動的進程數(shù)量(NPOC)越來越多并變成了running狀態(tài)如果VPS是在停止過程中卡住成為鎖定狀態(tài)的,殺掉有問題的進程后則使用vzlist -a命令可以看到vps應該順利停止,進程數(shù)量(NPOC)顯示為0
VPS成功的停止掉了
當VPS解除了鎖定狀態(tài),就可以對其做任何一種操作了