2012年10月21日 星期日

[Cloud] OwnCloud, a self-owned DropBox-Like Server(Chinese Version)



        相信大多的IT人都有使用DropBox的服務,這個服務讓我們可以將重要的文件,同步到一個網路硬碟,然後不管道哪裡都可以用這個服務將重要的資料在異機、異地取回這些文件。然而這個服務是一個由服務提供者(Service Provide)所維護的系統,若與企業研發相關的重要機密,基於商業機密的考量,可能就無法享用這個服務的便利性了。

        筆者近來找了一些類似DropBox服務的軟體,種類相當多,而且性能都非常好,依據用途的不同可選用不同的套件。

 FTPBox,透過FTPBox套件安裝在Client端就可以將資料同步到FTP Server。看起來當前僅支援Windows平台。

ownCloud,筆者這次測試的軟體,和DropBox非常非常類似,支援多種作業系統:如Mac OS, Linux, Windows, Android...也可以使用WebDAV的方式進行同步。由於測試的結果發現這套軟體的運作非常近似DropBox,且安裝過程較無痛苦,所以是此次最佳的學習範例。另外若企業有具備維護Linux系統的人才,可採用此套軟體簡化備份、並節省大量的建置成本。自第4版開始之後,新加入版本控制功能、檔案加密、還有免安裝Client以拖拉方式進行同步等許許多多的先進能力。。

SparkleShare,鼎鼎有名的同步軟體,主要是以git套件所兜製而成,具有版本控制的功能,很適合專案開發使用。SparkleShare支援了Linux, Mac OS與Windows Vista之後的作業系統。這套系統應是功能最完整且強大的一套,筆者會在ownCloud測試完畢後繼續進行SparkleShare的安裝。



        一般的企業級備份軟體功能太過於龐雜,增加部署的困難度,若要自行建置一套完整的備份系統,如筆者寫過的Bacula備份軟體, 沒有基礎的備份概念是完全架設不起來的。

        而ownCloud只要您知道怎麼將資料移動到資料夾,就可以輕鬆的理解這套軟體的運作模式,強烈建議中小企業使用此軟體,不論Server對不對外公開,都可依照企業的需求來進行設定。除了軟體安裝之外,底層的File System只要做不同的變化,即可適應不同的應用。比如Global File System就可以大為增強這套軟體的可用性,只要IT人員學習相關領域的知識即可。

        那我們就開始進行ownCloud的安裝與實測了。

環境

Server OS: ubuntu 12.04 x64
Client OS: ubuntu 12.04 x64
                  Windows7 Home Edition x64
                  iphone 4 IOS 6


注意:不要使用ubuntu內建的owncloud套件,因為目前ubuntu12.04的owncloud server版本僅提供3.0.0,這個版本在client與Server進行同步的時候,有無法建立資料夾的問題。筆者花了很多時間在解這個問題上,但是後來檢視官方最新版本為4.5.0,安裝此版本可以省去非常多的麻煩。

        筆者使用的是一個KVM虛擬主機,下面就一步一步將安裝的過程寫出,讀者只要照著做一定可以用。


一、安裝

1.  先安裝mysql-server
a00ylc00@ownCloud:~$ sudo apt-get install mysql-server
安裝過程中,系統會詢問我們要給database root用的密碼,這邊記得設定一個自己容易記得住的,因為在進行第一次連線到網頁的設定時,會要求輸入這組密碼。

2. 連線到ownCloud的主網頁http://owncloud.org/

在ownCloud的主頁右上角,點選"Install"
點選"Install"


























3. 點選"Open Build Servic























4. 依照下圖中的方法將ownCloud的更新套件url加入/etc/apt/source.list






















a00ylc00@ownCloud:~$ sudo vi /etc/apt/sources.list     在檔案中的最後加入下面一行
deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /
存檔離開。

a00ylc00@ownCloud:~$ wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key

a00ylc00@ownCloud:~$ sudo apt-key add - < Release.key 
OK
上面兩個指令將key匯入系統後就不會有驗證的問題了。

a00ylc00@ownCloud:~$ sudo apt-get update      將apt-get的套件清單更新一次,這樣就可以安裝上面我們加入source.list最後一行的套件了。

5. 開始安裝套件
a00ylc00@ownCloud:~$ sudo apt-get install owncloud

6. 再確認一次該開的Daemon都有開啟
a00ylc00@ownCloud:~$ sudo /etc/init.d/mysql restart    mysql-server啟動
a00ylc00@ownCloud:~$ sudo /etc/init.d/apache2 restart     apache2 daemon啟動

7. 在瀏覽器開啟自建的ownCloud網頁位址 http://該主機IP/owncloud
如筆者的環境為:http://192.168.1.67/owncloud/



























8. 建立管理帳號資料庫系統的root帳號密碼

下圖中以紅色框起的部份是讀者需要修改的地方。






































9. 點選Finish, 完成。



























10. 謝謝大家的耐心,現在您已經擁有自建的網路同步磁碟了。下個主題筆者將分享底層的檔案系統(File System),來增強像ownCloud這種類似的軟體的能力,比如無限擴充的空間、分散式運算的Global File System等。


讀者:等等..... 你都還沒介紹怎麼用呢!
筆者:啊?連怎麼用都要寫?

好吧,分享一半的哪算分享?咱們來瞧瞧實際使用的過程。


二、使用(Server端管理)

這邊筆者多貼圖,讓大家可以看看實際使用的畫面。


1. 透過網頁管理

完成設定後的初始頁面
一開始的時候,裡面什麼內容都沒有

Nothing Here.


 2. 點擊"New",然後選擇Folder,輸入一個命名,筆者這邊起了個名"ownCloud_screenshots",將所有在這個文章裡的截圖都丟了進去。

網頁管理可以很方便的將自己想上傳的檔案做儲存,若公司有VPN的話,在家連回公司也可以將檔案取回。













檔案列表






















3. 若要新增使用者,則在項目清單下方,有一個小小的齒輪圖示點擊,點選"Users"後進入User管理畫面,讀者可以嘗試著建立新帳號或新群組。










齒輪在這

























點擊Users














建立User或群組

設定Quota








































4. 直至目前為止,上面所有操作都在Server建立起來之後就可以使用,只要您擁有管理者權限就可以建立其他使用者提供服務。ownCloud還支援LDAP/AD認證,所以很適合在企業使用。


三、使用Sync Client(Client Agent)
以Sync Client套件做資料的同步(與DropBox最相近的功能來了)
這邊筆者展示ownCloud所支援的三種平台給讀者參考。

1. Windows7實測:
http://owncloud.org/sync-clients/ 下載Window Client,挑選您所需要的版本。








安裝完畢之後,在右下角常駐程式列找出ownCloud。右鍵點擊owncloud圖示後,選擇Configure,然後輸入server IP與使用者名稱及密碼(若已經為user建立帳號,就可以請user輸入個人的帳號開始進行資料同步)。

右鍵點擊小圖示,並選擇"Configure"












填入ownCloud Server位址& 使用者帳號密碼。
如果Apach設定了ssl模組,就可將"Use secure connection"
勾選並使用https來與主機連線。




































設定完畢後完成連線時,點擊"Next",將顯示連線成功的視窗,訊息如下圖。





















點選"Finish"後完成安裝。


此時系統預設就設定C:\Users\使用者帳號\ownCloud為同步的路徑,而Server端則出現"clientsync"的資料夾,準備好隨時將Client端的資料同步到Server上。此時資料夾中並未有任何資料,所以我們可以將想要備份的資料丟到C:\Users\使用者帳號\ownCloud這個路徑裡。


Server上出現了clientsync資料夾















資料夾中目前並沒有任何資料













丟些資料到同步路徑上














 一旦C:\Users\使用者帳號\ownCloud中有了資料,系統馬上開始進行同步,將資料備份到Server上。從Configure的視窗中可以看到雲的中間已經開始進行同步的圖示了,而Server上也會在同步完成之後,同時具有一份一模一樣的資料。


開始同步了!


















同步完成,Server上已經有了Client備份上來的資料。

















 Windows7平台測試完成!


 2. Linux平台實測(ubuntu12.04): 

在安裝Server的時候,我們已經將官方的source加到/etc/apt/source.list中,因此client也是使用這個位址來下載,套件名稱為owncloud-client



a00ylc00@ownCloud:~$ sudo apt-cache search owncloud   #先確認套件名稱
[sudo] password for a00ylc00:
libcsync-plugin-owncloud - A user level bidirectional client only file synchronizer
owncloud - ownCloud Server - Private file sync and share server
owncloud-client - The ownCloud client is based on Mirall - gitorious.org/owncloud/mirall
a00ylc00@ownCloud:~$ sudo apt-get install owncloud-client     #安裝套件

套件安裝完畢後,就像設定Window7一樣簡單,以圖形界面來設定。

但是系統預設都是以clientsync的路徑建立在Server上,因此容易混淆,我們可以在configure選項中將現有的設定砍除,建立新的路徑。下面我們就以圖示來說明整個流程。


執行套件


找到ownCloud Client的圖示執行之















 執行後,ownCloud Client會在背景執行,所以我們要在桌面上方找到這個圖示,並點選Configure.

右鍵點選小圖示後,點擊
Configure進行同步設定



















系統預設路徑就是在"clientsync"此資料夾,若直接使用就會將資料與剛剛Win7的放在一塊,所以我們重新再指派一個路徑做同步。這邊我們將/home/a00ylc00/ownCloud → clientsync的同步選項移除,再建立一份新的。這邊筆者建立了/home/a00ylc00/Downloads → ubuntu_downloads的同步選項,請參考下面的圖示步驟。



移除這個同步的設定




















/home/a00ylc00/Downloads → ubuntu_download































選取"to your ownCloud"並命名路徑為"ubuntu_downloads",
然後點擊"create"建立資料夾於Server上



























此時同步的選項就建立起來了,狀態如下圖。


新建一個新的同步項目
























建立完成後,丟些資料進Client端的Downloads資料夾試試。

將amd的driver檔丟進Downloads資料夾中







進入Server上的ubuntu_downloads資料夾查看有無新增檔案


點此資料夾查看檔案




















有了!










 ubuntu Client sync測試完成!


 3. apple IOS平台實測(iphone4 on ISO6):

 請直接參照圖片。


 先下載app,不管apple或android都要30元台幣。
安裝app




 進入app之後開始初始設定。

設定server IP及使用者帳號密碼

























 在主畫面直接新增資料夾

建立iphone4_IOS6資料夾
註:後來因為測試又更名為iphone_IOS6


























上傳資料

選取檔案,丟到Server上


























 檔案以上傳到Server上
已上傳的檔案

























 驗證Server上是否已存在這些檔案

資料夾已在Server上















 檔案也已經上傳。



檔案列表於iphone_IOS6



















 測試完成!






這篇文章筆者做了最初階的備份測試,其他較底層的認證,如透過LDAP或AD,mount file system之類的並未開始進行,筆者一步步將自己的系統測試分享給大家之後,有可以應用在這個領域的也會額外進行測試,將來讀可以可再看到更多元化的內容。




Reference:
http://betanews.com/2012/06/30/four-self-hosted-dropbox-like-services-businesses-can-use/

http://www.quora.com/Dropbox/Is-there-something-similar-to-Dropbox-that-lets-me-use-my-own-server

http://www.sparkleshare.org

https://help.ubuntu.com/community/iFolderInstall


http://gluster.org/community/documentation//index.php/GlusterFS_User_Guide

沒有留言:

張貼留言

艾倫搜尋企業級的Open Source Solutions,提供簡易好上手的教學文件。