:::

不太好用的Vento MW-96 E指鼠 / The problem of Vento MW-96 wireless mouse

布丁布丁吃布丁

不太好用的Vento MW-96 E指鼠 / The problem of Vento MW-96 wireless mouse

DSC_1346

為了讓筆電帶來帶去時不要讓體積過大,我特別挑了一隻小型的無線滑鼠來作為筆電的配件。這種小隻好攜帶的滑鼠是我長久以來關注的重點,不論是前一代的e指鼠或是這一代的Vento MW-96都讓我很心動,網路上也看不太到什麼負面評價。後來決定購買造型比較好看的Vento MW-96 E指鼠(以下簡稱MW-96)。

DCAN2G-A61784839000_4f5dc6dc6bc3b

MW-96大概是在2010年上市,上市至今已經很難找到購買的地方,我是在露天拍賣上找到賣家的。購買時上網看到的大多是廣告文宣,實際使用報告並不多,但是買來之後一陣子,我才發現MW-96最大的問題:材質

DSC_1347

上圖是最近放在包包一段時間之後的MW-96。體積小不好握、電池續航力大概只能擺包包擺個半個月,這都不是我在意的問題。問題是MW-96兩旁的黑色塑膠材質非常容易變質,容易變得黏黏的,沾滿各種污塵。這樣握起來感覺很差,手指一直感到黏黏的。

因此,激發我寫下這一篇負面評價的文章,警惕因為造型而想要購買的人,趕快打退堂鼓吧。

(more...)

修復Proxmox VE Cluster無法備份的問題 / Repair Proxmox VE Cluster cannot backup problem

修復Proxmox VE Cluster無法備份的問題 / Repair Proxmox VE Cluster cannot backup problem

2014-03-02_215010

最近我處理的Proxmox VE因為Cluster眾多功能異常,導致很多功能都無法正常使用。這次遇到的問題是備份時被鎖住的問題,解決方法是重新啟動Proxmox VE所有的服務,然後將該節點設為expected。

When Proxmox VE Cluster cannot work properly, the backup function maybe disabled,  due to permission is locked to read-only. This article describes how to repair this problem.


錯誤訊息 / Error Message

我在node(Proxmox VE Cluster中運作的一台伺服器,稱為node)名為「proxmox-master-c」為KVM類型的VMID 260虛擬機器進行備份。遇到的錯誤如下:

INFO: starting new backup job: vzdump 260 --remove 0 --mode snapshot --compress gzip --storage <STORAGE ID> --node <NODE>
INFO: Starting Backup of VM 260 (qemu)
INFO: status = stopped
INFO: update VM 260: -lock backup
INFO: unable to open file '/etc/pve/nodes/proxmox-master-c/qemu-server/260.conf.tmp.3682' - Permission denied
ERROR: Backup of VM 260 failed - command 'qm set 260 --lock backup' failed: exit code 2
INFO: Backup job finished with errors
TASK ERROR: job errors

關鍵在於紅字的地方。要備份時,Proxmox VE會寫一個暫存檔在虛擬機器設定檔的目錄,但是錯誤訊息顯示該目錄有權限問題,只能讀取不能寫入(read-only)。

為什麼被設定成只能讀取的權限了 / Why Permission is Read-only Permission?

這是因為Proxmox VE加入了Cluster中,並啟用了Proxmox Cluster file system (pmxcfs)。pmxcfs的特色其中有一項:

read-only when a node looses quorum

意思是,當Proxmox VE運作喪失了quorum元件時,Proxmox VE節點的虛擬機器設定會被轉換成read-only。儘管虛擬機器本身是可以正常運作的,但是卻不能進行任何設定,包括備份。因為權限備份被鎖起來了。

而這個問題另一篇Wiki中有敘述。簡單來說,因為Cluster異常,quorum無法順利讀取,讓整個Cluster中的node彼此之間無法正常連線,導致每個node都只能看到自己的運作狀態,這時候node就會自動鎖起來。

警告 / Warning

以下方法是我摸索解決方案的一個過程,很多細節我不清楚,有幾台node可以如此解決,可是有幾台不行。我還沒有了解整個原因細節,在此只是記錄一下目前的解決方法。

Wiki的解決方式 / The solution from Wiki

根據wiki的介紹,最簡單的方式是在有問題的node上輸入指令:

# pvecm expected 1

但是當我要這樣做的時候,卻又有另一個錯誤訊息發生,告訴我cman並沒有正常啟動。我嘗試想要用「service cman start」,但是卻依然不能執行「pvecm expected 1」。

我的解決方式 / My solution

因此我決定參考Re-installing a cluster node的方法,先關掉所有相關服務,再開啟相關服務,最後再執行expected指令。我將這些指令建置成了expected.sh,可以從GitHub上下載,檔案內容細節如下:

#!/bin/sh

service pvestatd stop
service pvedaemon stop
service cman stop
service pve-cluster stop

service pve-cluster start
service cman start
service pvedaemon start
service pvestatd start

pvecm expected 1

執行的時候依然會遇到很多問題,quorum等待過時(time-out)的問題依然沒有改變,如下圖:

2014-03-02_215458

儘管如此,執行完之後,有一定機率可以正常啟用整個Cluster。

其他注意事項 / Other Note

說是一定機率的原因是,有時候可能要重開機之後再執行一次expected.sh。但是這不一定每次都會成功,我試了好幾台,結果都不一樣。必須注意的是,重開機之後,虛擬機器不會正常地Start on boot,需要手動開啟。

其中有幾台因為網路交換器出了問題(ASUS的,真是堅若磐石)而導致quorum無法正常運作。更換交換器之後就正常運作了。

目前我手邊已經沒有需要做這樣修復的node,所以我接下來就不會繼續深入探究了。就做到這邊吧。

(more...)

資訊視覺化的演進 / The challenge of information visualization evaluation

資訊視覺化的演進 / The challenge of information visualization evaluation

image

書目 / Bibliography

Plaisant, C. (2004). The Challenge of Information Visualization Evaluation. In Proceedings of the Working Conference on Advanced Visual Interfaces (pp. 109–116). New York, NY, USA: ACM. doi:10.1145/989863.989880

摘要 / Abstract

這一篇2004年文章的介紹了資訊視覺化(Information visualization)的定義、特色以及理論基礎,並描述未來資訊視覺化發展的方向,包括人類與人工智慧的多方互動(Mixed-Initiative Interaction)、合作式與社群網絡的視覺化(Collaborative and Social Visualization)、演算法的改進等等。

其中個人覺得最有意思的地方是討論資訊視覺化跟科學視覺化(scientific visualization)的差異,並點出了資訊視覺化的目標「洞見」(insight)的意涵。

閱讀筆記 / Reading Note

(Google Drive, OneDrive, Bot.net)

(more...)

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