:::

Proxmox VE集叢重新加入節點 / Proxmox VE Cluster re-add (decluster) node

布丁布丁吃布丁

Proxmox VE集叢重新加入節點 / Proxmox VE Cluster re-add (decluster) node

proxmox_logo2configuration2

因為原本Proxmox VE集叢(Cluster)中有些節點(node)故障了,我想要移除該節點再重新加入,可是加入的手續卻沒這麼單純。參考sigxcpu的說明,我將作法摘要再這篇供大家參考。

This article will introduce how to re-add node in Proxmox VE Cluster.


不能直接用pvecm操作 / pvecm delnode & add not work

image

原本我的想法是先做delnode,再將自己加入。原本想像的指令如下:

pvecm delnode <self-node>

pvecm add <another-node>

可是實際上,雖然delnode不會顯示錯誤訊息,但是卻也無法順利從集叢中移除自己的節點。而且在用add加入節點時,也會發生以下錯誤訊息:

authentication key already exists

重新加入節點的腳本 / Script for Re-add node

在Proxmox論壇找了一下,才發現sigxcpu寫的解法

Step 1. 移除節點設定 / Delete Cluster Configuration (Decluster)

首先要停止服務、移除相關設定,然後重新開機。我撰寫了腳本上傳到github,你也可以直接用此腳本來操作。

decluster.sh檔案內容如下:

#!/bin/bash

service cman stop
killall -9 corosync cman dlm_controld fenced
service pve-cluster stop
rm /etc/cluster/cluster.conf
rm -rf /var/lib/pve-cluster/* /var/lib/pve-cluster/.*
rm /var/lib/cluster/*
reboot
Step 2. 重開機後加入節點 / Add to Cluster

重開機之後再正常執行加入節點的指令即可:

pvecm add <another-node>

這個節點必須是已經是目標集叢中的一員,可以用IP指定。大致上這樣就完成了。


小結:隱憂? / Conclusion: Something Strange…

今天下午我按照這個作法重新加入節點之後,集叢中的其他節點就無法正常運作了,整個集叢無法連線,但各別機器可以正常提供服務。

我現在還不清楚原因為何,是不是跟我重新加入節點有所相關。總之之後有其他發現的話,我會再介紹其他解決的方法。

(more...)

WordPress定期管理debug.log / Reducing oversized WordPress’s debug.log

布丁布丁吃布丁

WordPress定期管理debug.log / Reducing oversized WordPress’s debug.log

image

WordPress的debug.log會在不知不覺的時候無限增加。本文章介紹如何定期壓縮debug.log以避免容量暴增。

In WordPress, it's very easy to have a oversized debug.log. This article is aim to reduce the oversized debug.log in Linux.


前言 / Profile

最近我在管理WordPress的時候,赫然發現WordPress的目錄異常巨大,但是明明沒有上傳什麼大型檔案。查看之下才發現是debug.log的異常檔案過多,該檔案的路徑位於:

[WordPress安裝路徑]/wp-content/debug.log

網路上查了一下,發現大家並沒有什麼徹底解決該問題的方法。所以我決定自己撰寫Linux的Shell Script來壓縮debug.log。

解法流程 / Solution

我的解法如下:

  1. 配置compress_debug.log.sh腳本檔。
  2. 每天早上1點執行腳本檔。
  3. 腳本檔檢查debug.log容量是否大於100MB。
  4. 如果大於100MB,則壓縮到archive_debug_log目錄底下,依照日期命名,例如「debug.log-2014-02-18.zip」。然後清空debug.log。

以下介紹安裝的流程。

Step 1. 配置compress_debug.log.sh腳本檔 / Setting compress_debug.log.sh

腳本檔已經上傳到GitHub了,請從此連結下載。該檔案放置路徑如下:

[WordPress安裝路徑]/wp-content/compress_debug.log.sh

接著開啟該檔案的執行權限:

# chmod +x compress_debug.log.sh

你可以執行該檔案,看看archive_debug_log底下是否有出現備份檔案。

Step 2. 設置排程 / Setting crontab

修改排程檔案:

# vim /etc/crontab

加入以下設定

0 1 * * * root [WordPress安裝路徑]/wp-content/compress_debug.log.sh

其中的1就是指早上1點執行。


結語 / Conclusion

最近常常在處理備份檔的事情。這次備份腳本跟以往最大的不同在於加入了檔案大小的測試。很多每日備份檔案的行程,其實檔案大小並沒有大到值得備份的程度。這次加入了測試檔案大小來減少備份檔案的數量,也算是比以前更進步一些吧。

(more...)

Acer Aspire S7電池異常復原方法 / Acer Aspire S7 Battery Failure Recovery

布丁布丁吃布丁

Acer Aspire S7電池異常復原方法 / Acer Aspire S7 Battery Failure Recovery

20140217_221405

Acer Aspire S7(簡稱S7)最近電視廣告打很大,可是過保固之後就整個怪怪的。

我的S7最近常常關機後無法正常開機。即使電量充飽了,可是按下電源鍵卻仍無反應。後來發現是電池異常的緣故,要做電池重置的動作才能正常開機。

image

電池重置作法如下:

  1. 拔掉S7電源線,讓S7由電池供電
  2. 按下S7的電池重置按鈕。重置按鈕在底部風扇旁邊。如上圖紅圈圈。
  3. 按著10秒左右再拿出來。
  4. 按下S7電源鍵。如果順利重置就能夠正常開機。

20140217_222448

圈圈非常小,我是用鑰匙圈轉開之後才能戳進去,真的是非常麻煩。現在幾乎三天兩頭關機一次就會再起不能,必須要一直作電池重置的動作。哪天連電池重置都無效的話就得送修了吧。


以下附贈別人的S7遇到的問題:搖搖筆電。

我想應該也是電池的問題吧。

(more...)

OpenVZ掛載NFS的虛擬機器設定 / OpenVZ container configuration to mount NFS

OpenVZ掛載NFS的虛擬機器設定 / OpenVZ container configuration to mount NFS

image

如果要讓OpenVZ架設的Linux虛擬機器掛載NFS(Network File System),Host端必須先設定虛擬機器(container)的"nfs:on"。以下介紹詳細作法。

If you want to let OpenVZ container to mount NFS (Network File System), you have to enable "nfs:on" feature on host server first. Following is the details.


不能掛載NFS:mount.nfs: No such device / Mount NFS Error

image

如果NFS用戶端設定正確(可以參考鳥哥的NFS用戶端設定教學),可是仍出現錯誤訊息:(Debian上的)

mount.nfs: No such device

或是錯誤訊息:(CentOS上的)

mount: wrong fs type, bad option, bad superblock on 10.9.5.95:/raid0/data/_NAS_NFS_Exports_/email-km,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

這時候可能是因為OpenVZ尚未開啟NFS的功能的關係。

包括Proxmox VE在內,大部分OpenVZ虛擬機器(OpenVZ Container)在建立時都沒有開啟NFS的功能。如果要讓虛擬機器本身能夠掛載NFS目錄,請依照以下方法來開啟。

開啟虛擬機器的NFS功能 / Enable Container’s NFS Feature

Step 1. 將虛擬機器關機 / Shutdown Container

要進行設定之前必須先將虛擬機器關機。關機指令為:

# halt
Step 2. 進入Host端命令列 / Enter Host Shell

首先先進入Proxmox VE的網頁管理介面,預設連接埠為8006,必須用https進入。

image

登入之後,找到該虛擬機器的Host伺服器,進入右上角的「Shell」介面。

image

Proxmox VE提供了Java Applet連線的主控介面(console),可以在此直接以root身分操作Host端伺服器。

Step 3. 設定"nfs:on" / Setting "nfs:on"

接下來要照OpenVZ的說明設定虛擬機器。該機器的VMID若是101,那麼開啟NFS的指令如下:

vzctl set 101 --features "nfs:on" --save; vzctl start 101

image

設定完成之後,虛擬機器會一起啟動。

Step 4. 完成掛載設定

image

這時候再開啟虛擬機器,掛載NFS的時候,指令就能正常執行。


NFS掛載指令與設定 / NFS Mount Configuration

參考鳥哥的Linux私房菜中NFS客戶端的教學,OpenVZ要使用NFS,通常必須先做以下設定:

Step 1. 安裝nfs-common / Install nfs-common

Debian或Ubuntu系列請用apt-get安裝:

apt-get install nfs-common

CentOS或RedHat系列請用yum安裝:

yum install -y nfs*
Step 2. 測試NFS掛載指令 / Test NFS Mount Command

NFS的掛載位置必須參考NFS伺服器的設定。每一台NFS伺服器設定都不一樣,特別是現在各家NAS使用自家作業系統之後,提供的路徑千奇百怪,我在這邊卡了許久,後來升級NAS的韌體才知道NFS掛載路徑。

舉例來說,NFS伺服器設定如下:

  • IP網址:10.9.5.95
  • NFS的掛載路徑:/raid0/data/_NAS_NFS_Exports_/cluod-rstudio-2013
  • 本機的掛載路徑:/tmp/nfs(請預先用mkdir建立好該目錄)

那麼NFS掛載的指令就是:

mount -t nfs 10.9.5.95:/raid0/data/_NAS_NFS_Exports_/cluod-rstudio-2013 /tmp/nfs

試著執行看看。如果沒有任何訊息,那就是順利成功了。

Step 2-1. 錯誤: rpc.statd / Mount Error: rpc.statd

我在CentOS遇到以下錯誤訊息:

mount.nfs: rpc.statd is not running but is required for remote locking.

mount.nfs: Either use '-o nolock' to keep locks local, or start statd.

mount.nfs: an incorrect mount option was specified

那麼就必須先開啟rpcbind,指令為:

service rpcbind start

Step 2-2. 錯誤:mount.nfs: Connection refused / Mount Error: Connection refused

舊版本的CentOS會遇到這個問題。掛載時遇到的錯誤訊息如下:

mount.nfs: Connection refused

這版本的CentOS不是用rpcbind,而是用portmap。所以要先開啟portmap服務:

service portmap start

這樣就能夠正常掛載

Step 3. 開機自動掛載 / NFS Mount On Boot

修改 /etc/rc.local,加入剛剛測試成功的設定:

mount -t nfs 10.9.5.95:/raid0/data/_NAS_NFS_Exports_/cluod-rstudio-2013 /tmp/nfs

或是加上額外設定需要的「service rpcbind start」或「service portmap start」。

這樣就完成了。

(more...)

一小時的朋友 / One hour friends

布丁布丁吃布丁

一小時的朋友 / One hour friends

這個年假沒有幫到跳跳床的忙而只是在顧家,反而讓我懷念起之前寫的跳跳床打工的經驗。找了老半天才在噗浪中找出來,那我就在此備份一下吧:


時間:2012-01-28 15:24:51

 

這個年假如同往常一樣,我幾乎每天都在認識「一小時的朋友」。

 

***

 

「Hello~」瞪圓著的眼睛面對著打招呼的我,他一臉茫然。這是一位剛穿越氣墊床的越野叢林、準備爬階梯上到溜滑梯的四歲左右的小男孩。看他就這樣楞在那邊不接話,我就乾脆主動問他:「你知道怎麼爬嗎?」他看了看我,又看了看階梯,然後一整個身體撲上了階梯。

這種階梯類似繩梯,氣墊床本身是用帆布組成,而且軟趴趴的,所以小男孩撲上去倒也不會受傷。我看著他兩手抓著階梯的踏階,一階的高度大概是他的三分之二高,然後墊起腳尖、努力伸手想要抓到上面一階的階梯。伸了好久終於抓住了,他藉此攀爬了一階。但當他要在爬到更上層一階時,左腳一滑,他全身趴著階梯滑了下來。我趕緊用雙手扶住他,讓他站穩最下面的階梯。他仍然是一臉茫然,他不知道我是誰,也不知道到底要怎麼往上爬。

「我教你怎麼爬,來看著喔。」我扶著他的右手去抓著階梯旁邊的繩索,「抓緊右邊的繩繩。」他沒有回我,但是小小的右手確實地抓住了繩索。「然後是左邊的繩繩。」我一樣帶著他的左手抓住了階梯左邊的繩索。「就這樣,右邊、左邊、右邊、左邊,」我一邊扶著他,一邊指引他繼續往上爬,「繩繩抓得越高,你就越爬越高喔。」

小小的身體用上了全身的力氣,小男孩一階一階地往上攀爬。最後,終於坐上了階梯的頂端。「好棒喔,你成功了!」面對我的稱讚,他依然只是呆呆地看著我。「好,溜下去喔~」隨著我的話語,他也轉頭溜下滑梯,消失在我的視線範圍內。

 

***

 

過幾分鐘,小男孩穿越叢林來到了樓梯前。

 

「Hello~又看到你了。」「Hello!」他很開心地回應了我的問候,我想,這應該是溜滑梯魅力的效果。

這次他馬上抓住了繩索,兩三下就爬上了階梯。不過,「小心!」我又接住了腳滑的他,然後扶他爬上階梯。階梯頂端的他看著我,看起來十分期待待會溜下去的快感。「掰掰~」我對他揮揮手,「掰掰」他也笑著回應我,然後往另一邊溜了下去,伴隨著開心的大叫。

 

「Hello~我又看到你囉!」「Hello,嘻嘻嘻。」

過了幾分鐘,他又出現在我面前。而這次非常順利地爬上了階梯,然後「掰掰~」「叔叔掰掰~」地消失在另一端。

 

***

 

「Hello~你幾歲?」「5歲~」

 

「Hello~你要讀國小了嗎?」「幼稚園~」

 

「叔叔你有Angry Bird嗎?我有好多隻喔。」「真的喔,下次帶給我看吧。」

 

隨著見面次數越多,雙頰通紅的他越來越開心,而我們每次在攀爬階梯時的對話也越來越多。

 

***

 

不知道見了第幾次的時候,外面響起了來自櫃檯的廣播:

 

「手環上寫著10點30的小朋友,10點30的小朋友,你們的時間到囉,請到櫃檯剪票離開。」

 

他又是一臉茫然地看著我,我對他笑了笑,說:「來,可不可以讓我看看你的手環呢?」掀開他的左手袖子,綁在左手上、作為售票證明的手環上,有著黑色簽字筆寫的10:30。

「你的時間到囉,你去跟爸爸媽媽說。」「嗯。」他轉身打算從叢林離開,不過我拉住了他,跟他說「再溜最後一次吧?」他臉上綻放出了笑容,點點頭,然後一下子就爬上了階梯。

「叔叔掰掰~」他在階梯頂端叫我,一邊開心地揮著手。我也一樣,對他揮著手,笑著跟他說聲「掰掰」,並目送他溜下滑梯。
然後,我就再也沒有看到他穿越叢林來到階梯前了。

 

***

 

不過即使如此,

 

「Hello~是新來的呢。」下一位沒見過的小朋友很快地就出現在我面前。

 

而我又會微笑著問他:

 

「你會爬嗎?」

 

走了一位小朋友,我又很快地認識下一位。這就是我在年假時結交的,「一小時的朋友」們。

(more...)

回家

布丁布丁吃布丁

回家

DSC_0963

人家常說,「家家有本難念的經」。春節回家的時候,往往會聽到周遭朋友在抱怨回家所遇到的大小事。要嘛就是親戚嘮叨,老是在問交往、婚姻、工作、學歷;要嘛就是跟家人處不合,爸媽吵架、兄弟姊妹脾氣差;要嘛就是過年在家也一刻不得嫌,不光是打掃煮飯,還要去擺攤搶賺過年錢潮

要說的話,我回家的時候,也是有令我感到難過的事情。不過倒不是家人難相處、也不是討厭家事幫忙,而是生理上的難過──過敏。而這個過敏原不是貓狗、不是食物(是的,其實我吃海鮮也不會過敏),而是壁癌

我的鼻子呼吸道不太好,主要原因是因為從小就待在過敏。現在這個家大概是國中時候遷入的,從那開始之後,我的鼻子就變得很糟。開始帶手帕的原因也是因為常常會擤鼻涕擤到變成鼻血,因此嚇到周遭不少人。到了高中學校念得比較遠,就越來越不想回家──因為一回家,就會覺得很不舒服。直到上了大學來到台北,我才知道到底原來造成我鼻子的問題,就是因為壁癌。

DSC_0423

不光是我自己,我家人也多少因為壁癌的關係,不僅常常久病難瘉(幾乎都是鼻子的問題),甚至嚴重到氣喘的程度。得知原因之後,爸媽很辛苦地將整間房子有問題的地方打掉,發現不少排水溝滲水、水管破裂導致壁磚潮溼的地方,然後想辦法弄乾、水管重接、排水溝重鋪、防水油漆努力補強,工程浩大。那段期間我一直沒幫上什麼忙,真是感謝家人的辛勞。

但是,儘管這個大工程已經經過了快兩年,我在家裡還是會覺得很不舒服。年假這段期間,只要家事做完告一段落,我總是揹起筆電就躲到j附近的7-11去工作。每天晚上聽到爸爸因為鼻涕倒流導致咳嗽不止的慘狀,我覺得睡覺也像是在賭運氣一樣,要嘛就是因為呼吸不順、睡眠不佳而昏迷到中午,要嘛就是過敏嚴重到因為鼻子痛而醒來。

心疼孩子的媽媽老師拿屋子老舊讓大家過敏這點來唸爸爸,而爸爸總是開玩笑地說:「好啦好啦,那我出門去買房子就是。」然後騎摩托車前去彩券行。可惜我們家沒偏財運,房子還買不起,倒是先捐了一堆錢做公益。

隨著初五年假結束,我也回到了台北。但這時候身體總是像奇蹟般地自動痊癒。鼻子不塞了,鼻涕不濃了,喉嚨不咳了,呼吸也正常多了。這時候我總是覺得非常諷刺,這個身體就這麼討厭我家嗎?

雖然身體不太老實,不過我還是很喜歡我家人啦。這個年假沒幫上家人什麼忙,就只有一些打掃、幫忙煮個飯、收收碗筷,跟家人聊聊天而已。

即使是這樣,這也是我很重要的小小幸福。能跟大家在一起的時間不多,有機會就要好好把握啊。

(more...)