:::

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...)

論文獲得了「The Electronic Library 2013 Highly Commended Paper Award」 / Receving The Electronic Library 2013 Highly Commended Paper Award

論文獲得了「The Electronic Library 2013 Highly Commended Paper Award」 / Receving The Electronic Library 2013 Highly Commended Paper Award

20131225-pudding-2-0003

陳志銘老師、其他老師以及我在內大家合力在2012年發表的論文「基於臺灣百年圖書館史DSpace平台發展讀者知識典藏與分享機制」獲得了Emerald出版社底下The Electronic Library期刊的高度推薦論文獎

My teacher, Prof. Chih-Ming Chen, other teachers and I published a paper “Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform” in 2012. And we got “The Electronic Library 2013 Highly Commended Paper Award” this year.


獲獎經過 / Receiving the Award

今年5月的時候,我收到來自Emerald Literati Network的得獎通知信件。那時候我還在想說,文章審查意見的事情主要是先由老師決定如何處理,而忽略這封信。隔幾天老師跟我報喜,我發現原來是這是獲獎通知。

信中還寫到有機會可以到國外研討會去領獎,我還挺興奮的,可惜後來並沒有如期成行。最後只有將獎狀寄出,大概12月才收到這張獎狀,就是文章開頭的那張圖片。

最後記錄一下得獎的網頁:

獲獎論文 / Awarded Paper

elcover

獲獎的論文原文是「Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform」,完整的APA引用文獻是:

Chen, C.-M., Chen, Y.-T., Hong, C.-M., Liao, C.-W., & Huang, C.-M. (2012). Developing a Taiwan library history digital library with reader knowledge archiving and sharing mechanisms based on the DSpace platform. Electronic Library, The, 30(3), 426–442. doi:10.1108/02640471211241681

文章網址:

摘要 / Abstact

image

研究目的 / Purpose

本研究係在台灣圖書館史數位圖書館中,發展一基於Web 2.0技術、可在HTML網頁進行標註的閱讀標註與知識分享工具。

研究方法 / Design/methodology/approach

本研究調整了DSpace──一個開放原始碼的機構典藏系統──以此建置臺灣百年圖書館史數位圖書館,並加上讀者標註工具以支援讀者知識典藏與分享機制。本研究採用準實驗研究設計,將受試者隨機分成實驗組與控制組,以該系統進行閱讀學習並評估閱讀理解成效。統計分析顯示使用閱讀標註工具的實驗組學習成效明顯較高。

研究結果 / Findings

本研究發現具閱讀標註之數位文本提供讀者有用的知識。標註的價值在於可以輔助讀者獲取深度知識與進行有效閱讀。此外,對於數位圖書館來說,數位圖書館的內容也可以隨著讀者知識典藏而動態成長。更重要的是,來自不同讀者的標註資訊將有高度潛力,可以利用資料探勘技術進行更進一步的知識加值探勘。

研究價值 / Originality/value

在圖書資訊學領域中,蒐集讀者產生的內容是一種嶄新的研究議題,而且鮮少研究發展出有效的工具以支援讀者在數位圖書館中貢獻他們的知識。本研究描述了如何實作此數位圖書館系統以及如何利用標註工具促進數位典藏的成長,並影響讀者學習成效的提昇。

系統平台 / Platform

THL Project

論文提到的系統還可以使用喔:

關於百年圖書館史,可以參考我之前的「臺灣百年圖書館史」介紹。本系統在今年被我轉移到OpenVZ上,現在是以虛擬機器的形式在運作。不過這是我早期使用DSpace的系統,所以很容易當機。如果有問題的話可以在下面反應一下。


小結:得獎不敢居功 / Can't Take The Credit for This Award

這篇論文能得獎,還是得歸功於老師們,我主要做的只有系統功能的結合而已。能跟老師們沾點光,我就覺得很幸運了。在此僅是推銷一下這篇論文的內容與系統,做個記錄而已。

不過,未來我還是希望能靠自己的寫作來得獎,到時候才能夠真的抬頭挺胸地跟大家分享這份驕傲吧。

(more...)