:::

用ownCloud掛載NFS時避開資料夾權限檢查的問題 / Disable ownCloud permission check when mounting NFS

用ownCloud掛載NFS時避開資料夾權限檢查的問題 / Disable ownCloud permission check when mounting NFS

image

ownCloud掛載NFS時,資料夾權限會被設定為777,違反ownCloud所限制的770權限,而導致ownCloud無法順利運作。本篇文章修改了ownCloud的util.php來避免權限檢查問題。

When mounting NFS for ownCloud, the mounted folder’s permission will be changed to 777. Due to security reason, 777 permission is not allowed by ownCloud and it will not work while this permission. This article try to modify util.php to disable the permission check and let ownCloud work properly.


我使用的ownCloud / My ownCloud Version

ownCloud是一種類似Dropbox的開放原始碼網站系統,我們最近也嘗試在自己單位中架設ownCloud來提供雲端硬碟的服務。

以Turnkey Linux架設OpenVZ虛擬機器的ownCloud / Establish ownCloud from Turnkey Linux OpenVZ Container

ownCloud的系統基礎是由PHP與MySQL組成,但是對於已經具備雲端平台的我們來說,當然不會從頭開始架設,而是直接選擇Turnkey LinuxownCloud OpenVZ虛擬機器來架設,ownCloud版本是4.90.8。

image

啟用ownCloud / Enable ownCloud

用Turnkey Linux架設虛擬機器很快,首先先把樣板上傳到Proxmox VE,開啟Console或用SSH登入到虛擬機器上,做一些密碼設定及取消Turnkey Linux自動更新的設定之後,就能夠用網頁直接連接了。

以下是啟用ownCloud之後遇到的問題與解法。


ownCloud掛載NFS / Mounting NFS for ownCloud

image

由於ownCloud運作於虛擬機器上,我不想讓單一虛擬機器擁有過大的檔案,造成備份及還原時的困擾。因此我決定將ownCloud儲存使用者資料的資料夾掛載到另外的NFS伺服器上。整個架構圖如上圖所示,但是細節部分需要注意的事情很多,以下一一敘述。

啟用OpenVZ虛擬機器掛載NFS的功能 / Enable OpenVZ Container Mount NFS Feature

Proxmox VE這種OpenVZ虛擬機器(container)要掛載NFS,必須在主機端(host)為虛擬機器開啟nfs:on的設定。細節請看我之前寫的介紹。

至於ownCloud擺放使用者資料的資料夾,Turnkey Linux預設的位置是在「/var/www/owncloud/data」。因此只要掛載這個資料夾即可。

掛載後無法啟用ownCloud的問題 / ownCloud Would Not Work After Mounting

image

接著開啟ownCloud的時候就會遇到上圖的錯誤,錯誤訊息如下:
Data directory (/var/www/owncloud/data) is readable for other users
Please change the permissions to 0770 so that the directory cannot be listed by other users.

安全性限制 / Security Limit

image

這是因為掛載NFS之後,data資料夾的權限會被改成777,而非預設的700。基於安全性限制,在data資料夾為777的權限之下,ownCloud將無法正常運作。

我們試著找了些方法,可是並沒辦法順利迴避資料夾權限檢查的問題。最後索性直接修改ownCloud的程式碼來略過權限檢查的問題。

修改util.php關閉資料夾權限檢查 / Modify util.php to Disable Permission Check

最後我們找到了ownCloud權限檢查的位置,這是在/var/www/owncloud/lib/util.php當中的一段敘述。我們將util.php關於資料夾權限檢查的部份註解掉之後,ownCloud就能夠順利運作了。

util.php已經上傳到GitHub,註解的行數介於241行~283行,請自行下載,替換原本ownCloud的/var/www/owncloud/lib/util.php吧。


小結:ownCloud的網頁與桌面免費,行動版要收費 / Conclusion: ownCloud Free for Web and Desktop, but Paid for Mobile

安裝ownCloud的過程中,除了這個NFS的問題之外,我們還遇到另一個伺服器位址需要加上連接埠才能正常使用的問題。但那個問題似乎是因為我們使用了反向代理伺服器(reverse proxy),導致同步用戶端不是正常連線到ownCloud,而只是連到反向代理伺服器,因此無法運行。

另外還有一個問題是在於同步工具上。ownCloud的桌面版同步工具提供了Windows (Windows XP, Vista, 7 and 8, 32/64 bit)、Mac (Mac OS X 10.6 or better, Intel 64 bit)、Linux (CentOS/RHEL, Fedora, openSUSE, Ubuntu, Debian,圖示比較華麗)。但是ownCloud行動版本的卻要付費,iOS的費用是最低的$0.99美金Android的費用則是NT$30

8 - 1

雖然也可以在手機上開啟網頁版本,但是似乎沒有做行動裝置的最佳化,所以看起來非常像桌面版本,不太容易使用。這個問題不知道有沒有替代方案呢?

(more...)

長久典藏的議題:「兩種傳統」以及美國檔案專業 / The Permanence of Provenance: The “Two Traditions” and the American Archival Profession

長久典藏的議題:「兩種傳統」以及美國檔案專業 / The Permanence of Provenance: The “Two Traditions” and the American Archival Profession

image

這篇論文是整理19世紀時美國歷史學者如何將歐洲檔案原則帶入美國,在20世紀時公共檔案傳統(public archives tradition)的盛行促進美國檔案館的成立,以及歷史手稿傳統(historical manuscripts tradition)的沒落。


書目 / Bibliography

Hirsch, R. (2010). The Permanence of Provenance: The “Two Traditions” and the American Archival Profession. Journal of Archival Organization, 8(1), 54-72. doi:10.1080/15332748.2010.486754

摘要 / Abstract

This article examines the claims that the American archival profession owes its existence to the unique combination of a “historical manuscripts tradition” and a “public archives tradition” over the course of the nineteenth and twentieth centuries. It also evaluates the differences and similarities between the traditions’ theories of practice and ideologies in early twentieth century American writings on archives and the Society of American Archivists’ “basic manuals” that defined much professional theory and practice in the late twentieth century. These findings have contemporary implications, as those seeking to define modern archival theory often erroneously use the origins of the American archival profession to support their arguments.

這篇文章檢視了美國檔案專業宣稱自己是19世紀至20世紀中「歷史手稿傳統」(historical manuscripts tradition)與「公共檔案傳統」(public archives tradition)兩種傳統的結合。這篇文章也根據20世紀早期美國的檔案著作與美國檔案學會(Society of American Archivisit, SAA)的手冊中對於專業理論與實務的定義,回顧了兩種傳統理論在實務(practice)與意識型態(ideologies)的相似與差異。這對當代有重要意義,因為那些試著定義現代檔案理論的人時常錯誤引用美國檔案專業的來源來支持他們的論點。

筆記 / Reading Note

Google Drive

雖然知道這篇很重要,但老實說讀的不是很通,還需要努力呢。

(more...)

圖書資訊學博士教育:1930到2007的整體分析 / Library and Information Science Doctoral Education: The Landscape from 1930-2007

圖書資訊學博士教育:1930到2007的整體分析 / Library and Information Science Doctoral Education: The Landscape from 1930-2007

image

這是上一個學期圖書資訊學趨勢指定閱讀的一篇研究論文。這份研究分析了1930年到2007年的博士論文,並跟ALISE統計報告相比,發現圖資博士畢業人數眾多,但圖資教職中非圖資出身的比率卻很高的現象。

This is a course reading note. This research article analysised LIS dissetations by ALA-accredited schools between 1930 and 2007. One of results indicate that 78% of doctoral graduates not holding faculty positions.


參考書目 / Bibliography

Sugimoto, C. R., Russell, T. G., & Grant, S. (2009). Library and Information Science Doctoral Education: The Landscape from 1930-2007. Journal of Education for Library & Information Science, 50(3), 190-202. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&db=lih&AN=43928252&lang=zh-tw&site=ehost-live

摘要 / Abstract

To anticipate future trends for doctoral education in library and information science (LIS), we examine the historical progression and current landscape of doctoral degree programs in the United States and Canada. By providing a comprehensive rendering of the history and current state of LIS doctoral education, this work provides data not previously available. Data for this work come from MPACT, a database that provides listings of 3,014 LIS dissertations conferred by 38 ALA-accredited schools between 1930 and 2007. This work discusses degrees offered and focuses on changes in the landscape within the last ten years, in addition to an evaluation of schools that produce future faculty for ALISE institutions. Results confirm the health and activity of LIS doctoral programs in North America.

為了得知圖書資訊學(library and information, LIS,簡稱圖資)博士教育的未來趨勢,我們分析了美國與加拿大博士學位的歷史進展與現在的狀態。藉由全面綜合分析圖資學博士教育在歷史與現況的狀態,這篇文章展現了前所未見的研究資料。文獻分析的來源是來自MPACT,這是一個電子資料庫,蒐集了1930年到2007年間來自38所ALA認證學校的3,014篇圖資博士論文(dissertations)。這篇研究討論了博士學位資格的進展,並聚焦於近10年間的轉變,特別是跟ALISE機構評估學校教職的結果相互比較。最後結果確認了北美圖資博士教育的發展健全與活躍。

筆記 / Reading Note

Google Drive

PDF標註筆記:OneDriveBox.net


關於作者 / About Author

0000-ca19252640

最後附帶一提,作者Cassidy R. Sugimoto不僅研究都做很多這種數據統計的分析(甚至也會用複雜的LDA法呢!)之外,人也非常漂亮XD

(more...)

Gmail開新視窗撰寫郵件 / Composing Gmail with new Window in Gmail

布丁布丁吃布丁

Gmail開新視窗撰寫郵件 / Composing Gmail with new Window in Gmail

Image 10

Gmail上自改版之後,撰寫新郵件就會用一個小小的視窗嵌在Gmail當中的方式進行。後來我發現到按住Shift鍵再按下放大按鈕之後,就可以用獨立視窗撰寫郵件了。

In Gmail, we usually compose email in a small embed window. But this small window could be enlarged as a pop-up window by using hotkey “shift”. This article will show you how to do it.


嵌在網頁內的郵件撰寫功能 / Composing email within Gmail webpage

Gmail是我主要使用的網路信箱,我通常都是用它來撰寫郵件。早期Gmail撰寫郵件時,可以用獨立視窗來進行。我個人比較偏好用一個視窗做一件工作,而不喜歡目前Gmail將郵件當做即時通訊的形式呈現。

Image 10

現在的Gmail中,在解析度這張解析度為950*629的網頁中,撰寫視窗會遮掉Gmail的大部分。被遮蓋的地方無法觀看,而佔用了撰寫視窗的大半部分。

Image 12

即使按下放大按鈕,也只是在視窗中變大而已。被遮住的地方依然是一種浪費。

開新視窗編輯郵件 / Composing email with new window

2014-03-04_085657

最近我才發現放大視窗的功能按鈕上有個提示:「全螢幕(按Shift鍵顯示彈出式視窗)」。

2014-03-04_085447

按著Shift鍵放大視窗之後,就能就用獨立網頁來撰寫郵件。是不是清爽許多了呢?

我一直在想,這功能這麼實用,可是卻很少看到有人介紹,乾脆自己寫一篇好了。這就是這篇產生的由來。

(more...)

解決Proxmox VE KVM虛擬機器硬碟與光碟常見問題 / The solution for KVM virtual machine’s hard drive and ISO mount misconfiguration in Proxmox VE

解決Proxmox VE KVM虛擬機器硬碟與光碟常見問題 / The solution for KVM virtual machine’s hard drive and ISO mount misconfiguration in Proxmox VE

proxmox-logo

最近我們在大規模地遷移Proxmox VE中的虛擬機器,其中KVM類型的虛擬機器在轉移時常常會遇到許多各種不同的問題,像是硬碟設定或是光碟設定錯誤。我將這些問題的處理方式記錄如下。

When I migrated KVM virtual machines at Proxmox VE, I encountered many problems, such as hard drive or CD/DVD drive misconfigured. This article I describe the solutions for those problems.


硬碟驅動錯誤 / Hard Drive Misconfigured

Image 3

最常見的就是硬碟驅動配置錯誤。有段時間我常常先在VirtualBox建立虛擬機器,再轉移到Proxmox VE。這種轉移方式通常只是上傳最重要的硬碟映像檔,像是vmdk或是qcow2 (但是在VirtualBox上運作qcow2的效率其差無比就是了)。

從VirtualBox到Proxmox VE的配置 / Configuration From VirtualBox to Proxmox VE

如果只是轉移硬碟映像檔的話,必須特別注意他們的硬碟驅動設定必須一致。如果當初建立的時候使用IDE,在轉移之後建立也就必須使用IDE。

2014-03-04_063543

舉例來說,這是VirtualBox的操作介面,你可以看到這台虛擬機器的硬碟是被設定成SATA

Image 5

但是在Proxmox VE上,這臺虛擬機器的硬碟卻被設成了IDE。在Windows XP或是Linux卻使用LVM的情況下,往往會造成開機失敗。

Image 6

因此,在建立虛擬機器的硬碟時,必須特別注意其使用的硬碟驅動器。

解決方式:修改硬碟控制器 / Solution: Modify Hard Drive Controller

如果你已經將硬碟安裝成錯誤的硬碟驅動器,那Proxmox VE網頁介面上是無法直接修改。我建議是使用SFTP直接操作伺服器的檔案系統,作法如下:

  1. 先以正確的硬碟驅動器新增一個硬碟映像檔,檔案大小不拘。
  2. 以SSH登入Proxmox VE:預設連接埠22。
  3. 進入KVM的硬碟擺放位置:以VMID為260的虛擬機器為例,路徑位置就是/var/lib/vz/images/260
  4. 新建立的硬碟映像檔檔名通常會是「vm-260-disk-2.vmdk」,而用錯誤方式建立的硬碟映像檔通常會是「vm-260-disk-1.vmdk」。
  5. 記住新映像檔檔名,把新的硬碟映像檔刪除,再把舊的硬碟映像檔換個名字
  6. 回到Proxmox VE網頁介面,刪除舊硬碟映像檔的設定,只留下新建立正確的硬碟設定

這樣就完成了。


CD/DVD光碟掛載錯誤 / CD/DVD Drive ISO Mount Misconfigured

Image 7

前一種情況大多是只轉移硬碟映像檔的時候,這一種情況則是使用Proxmox VE的備份功能vzdump匯出虛擬機器之後、再匯入新的Proxmox VE的情況。細節作法可以看我寫的另一篇「Proxmox VE用備份(vzdump)與還原(restore)複製虛擬機器」。

使用vzdump的時候,虛擬機器的設定會鉅細靡遺地被保留,並還原到新的虛擬機器環境中。問題是在於新的環境中可能使用的Storage ID(儲存空間名稱)不一樣,就會導致無法正常開機的問題。

Image 8

以上圖為例,當Storage設定錯誤時,發生錯誤訊息就會是:

TASK ERROR: storage 'proxmox-nas' does not exists

這是因為這個Proxmox VE虛擬機器環境下沒有名為「proxmox-nas」的Storage的緣故。

解決方式:取消掛載映像檔 / Solution: Unmount ISO

Image 9

解決方式很簡單,就是把掛載的映像檔取消掉就好了。

  1. 指定該硬碟,按下Edit
  2. 設定Do not use any media,或是重新掛載正確的ISO映像檔,按下OK即可

這個問題警惕了我們,如果虛擬機器設定完畢之後,記得取消掛載安裝時使用的映像檔設定。


結論:不要害怕使用虛擬機器 / Conclusion: Embrace Virtual Machine

每次遇到虛擬機器的各種問題,我常常聽到的抱怨都是:「為什麼要用這種東西?你就不能裝在實體機器上嗎?」就我個人來看,這種抱怨是一種誤解。

如果你仔細看看這篇敘述的兩種問題,其實是很容易類比到實體機器上──就像是拿著SATA線去接一顆IDE硬碟,或是在光碟機裡面指定放進一片不存在的光碟。儘管實體機器操作中,有些常識的網管可能不會卡在這麼奇怪的問題上,但這的確是可以從實體機器類推到虛擬機器上的情況。

我想說的是,其實虛擬機器的設定跟實體機器沒有這麼大的差別,但比實體機器設定更為容易。以硬碟控制器的問題來說,實體機器的情況可能是一顆舊的IDE硬碟要裝到新的伺服器上,如果伺服器只剩下SATA線,那要裝IDE硬碟還必須搭配張SATA to IDE的轉接卡才能使用,安裝時還得考量到轉接卡阻礙線材空間等問題,處理起來挺費工夫的。但是虛擬機器只要設定幾項參數即可完成調整,方便許多。

虛擬機器除了有助於網管之外,快速還原的能力還能夠用於程式開發上。在「成为一个PHP专家:缺失的环节」一文中建議PHP時使用虛擬機器建立個Linux,以方便隨時重新開始或還原到程式開發的某個狀態。這些都是非常有用的功能。

因此,我會對VirtualBox、Proxmox VE、OpenVZ、KVM等多種開放自由的技術抱持最高的敬意,並繼續擁抱虛擬機器。

(more...)

不太好用的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...)