2007年1月31日 星期三

[iFolder3] 使用心得分享(1) - 系統安裝

何謂 iFolder ? 以下是在官方網站上面的說明:
iFolder is a simple and secure storage solution that can increase your productivity by enabling you to back up, access and manage your personal files-from anywhere, at any time. Once you have installed iFolder, you simply save your files locally-as you have always done-and iFolder automatically updates the files on a network server and delivers them to the other machines you use.

Sponsored by Novell, the iFolder project is built on the Mono/.Net framework to integrate seamlessly into existing desktop environments.

簡單來說,iFolder 就是一個將檔案存在網路伺服機中,加入了認證、分享....等機制,讓使用者可以隨時在網路上存取自己的檔案,當然 iFolder 的功能不僅僅是上面簡單的描述而已,實際上他的功能是相當強大的,而功能的部分容後介紹,這邊要介紹的是安裝的方式。

而要用 iFolder 的原因在於要解決學生網路硬碟,以及各單位網頁上供使用者下載檔案的存放問題,當然 iFolder 的強大使用彈性也是考量之一,而以下的安裝設定,都是在 Fedora Core 5 的環境下進行。

iFolder 原本是 Novell 提出的一整套 storage solution,預設是 bundle 在 Novell Open Enterprise Server(OES) 上面,由於 OES 是要付費的,因此就不考慮使用了,因此改用免費的 FC5 作為安裝環境。

以下為了避免還要編譯的麻煩,因此一律以 rpm 的方式來安裝:
# 由於 iFolder 是由 Mono 所開發,且運行於 Apache 上,因此要安裝相關套件
yum -y install httpd mono-web mono-core mono-data mod_mono xsp

# 建立 ifolder 目錄,以便儲存等會抓下來的套件
mkdir ifolder3
cd ifolder3

# 將 iFolder 相關的套件一次抓回來並安裝 (官方網站上的HowTo位置不對喔! 要改成下面這個)
wget -r -np -nH -nd --accept=rpm http://forgeftp.novell.com/ifolder/server/3.5/20060621-0346/linux/FEDORA-CORE-5.0-i386/rpms/
rpm -Uvh log4net*.rpm libflaim*.rpm ifolder3-server*.rpm
做完上述的步驟,安裝的步驟就完成啦!

記得還要把 Apache 、防火牆 TCP 80 port 開啟,並將 SELinux 關閉,iFolder 才能 run 喔! 因此進行以下指令:
# 開機啟動 Apache
chkconfig --level 3 httpd on

# 開啟防火牆
system-config-securitylevel-tui

在畫面設定上,把 http (TCP port 80) 的部分開啟吧!


# 編輯 SELinux 設定
vi /etc/sysconfig/selinux

SELINUX=enforcing 改為 SELINUX=disabled ,接著重開機即可。

【註】關於 SELinux 的部分,個人不傾向全部關掉,畢竟可能還有其他的服務在運作,而不關掉要如何設定才能讓 iFolder 正常運作,之後研究出來再補吧! ^_^


參考資料:
  1. Building iFolder Enterprise Server on CentOS 4.3 and Fedora Core 4/5
  2. Configuring iFolder Enterprise Server on CentOS 4.3 and Fedora Core 4/5

2007年1月21日 星期日

[PostgreSQL] 安裝初體驗

2007年開始了....研究似乎都還沒開始要動,下星期又要跟教授吃飯,壓力真是超大啊!! Orz

回歸研究的部分好了,由於研究跟 Data Warehouse 有關係,因此要挑一個優秀的 DBMS 來用;而從大學時代使用 MS SQL Server 開始,接觸 RDBMS 也有四五年之久了(可是功力還是很差....真是汗顏....),想說藉由研究的機會,來接觸比較不一樣的 DBMS 好了,當然學生沒啥錢,因此免錢最好啦!! 於是就挑中 PostgreSQL 囉~ ^_^

PostgreSQL 號稱是目前最進步的 DBMS,加上又是 open source,對於一般人來說,取得並使用的門檻可算是很低了,不過國內看起來似乎不太流行,難道因為中文參考資料不多的關係嗎? 不過沒關係,沒中文就看英文....沒英文就.......看火星文也沒差啦!

廢話了一堆,該回歸正題了,之後所有的實作平台,都是架構在 Ubuntu Linux 6.06 Server 上,當然會挑這個平台不是沒原因的,只是因為我太懶了,實在很不想用官方的 tarball 去 compile 再 install,只好挑一個套件支援夠多的 Linux distribution 來用。

以下介紹安裝設定的方式:


1、安裝


在 ubuntu 中安裝這個部分實在太容易啦!(這好像是廢話,不好裝我就不會挑這一套了....) 一行指令完成,以下是安裝方式:

  • 檢查可由網路上安裝的 PostgreSQL 版本

    apt-cache search postgresql

  • 安裝 PostgreSQL 相關套件(client、documentation也一併安裝了)

    sudo apt-get -y install postgresql-8.1 postgresql-client-8.1 postgresql-contrib-8.1 postgresql-doc-8.1


2、設定 role

在使用者權限設定的部分就比較特別了,PostgreSQL 與其他的 RDBMS(MS SQL Server、MySQL....etc) 有比較不一樣的地方,在於 PostgreSQL 沒有所謂使用者(Group)以及群組(Group)的觀念,

網格(Grid)初探

Grid Computing,又稱為網格運算,屬於分散式運算的一種,其目標在於從現有的硬體架構,集結各電腦的閒置運算能力,以形成一台擁有超強運算能力的虛擬超級電腦。

這樣說來似乎有點籠統,以下舉幾個實際的例子:

當然 Grid 的應用不只是用在上面這三種,而此處有個重要概念必須澄清:
Grid 並非只能拿來作為 compute solution,亦可用於 storage solution!

因此從 Grid 延伸出來的應用可就多采多姿了,端看人類的巧思要如何去發揮~(前提是網路環境必須成熟,頻寬要夠大,因為 Grid 所有應用都是架構在網路的基礎上)


當然,由於 Grid 是個不久前才被提出的概念,因此你我的電腦上並不會安裝 Grid 相關的套件或是軟體,而在 Microsoft Windows 中,似乎也看不太到 Grid 相關軟體的影子....

PS. 要 Microsoft 將 Grid 的概念納入開發 OS or software 的考量,似乎不太可能,畢竟他們的策略與未來假設原本就不是如此。


因此,要作這一類的研究,只能在 Unix or Unit Like 的 OS 去尋找解答了;而由於 Grid 是一種分散式的環境,因此要考量的面向可就不像一般的個人電腦如此單純,不論在安全性、網路頻寬、儲存空間、運算能力、錯誤偵測、錯誤處理....等等各個方面,都必須要考量到,因此要建置 Grid 的環境,勢必要下一番功夫。

不過幸好有熱心的開發團隊,開發出讓大家可以容易使用的 middleware,讓大家可以在建置 Grid 環境上容易些,而目前較為有名的 Grid middleware,大概有以下三種:

其中在安裝部分最為容易的(其實也不是很容易啦!),就是 gLite 了,gLite 可在 Scientific Linux 上直接以 APT 的方式進行安裝,不像 GT4 必須要將 tarball 下載回來自行 compile 再安裝,整個安裝程序簡單許多,因此在 Grid 環境建置的部分,選用 gLite 來進行安裝。

[LVM2] 調整分割區大小

我想有接觸 Linux 的人應該對 LVM 不陌生吧? 以下是 LVM 的一段英文介紹(原文出處):

LVM is an implementation of a logical volume manager for the Linux kernel. It was originally written in 1998 by Heinz Mauelshagen, who based its design on that of the LVM in HP-UX.
The installers for the Fedora, SuSE and Debian distributions are LVM-aware and can install a bootable system with a root filesystem on an logical volume (LV).

The LVM can:
  • Resize volume groups (VG) online by absorbing new physical volumes (PV) or ejecting existing ones.
  • Resize LVs online by concatenating extents onto them or truncating extents from them.
  • Create read-only snapshots of LVs (LVM1).
  • Create read-write snapshots of LVs (LVM2).
  • Stripe whole or parts of LVs across multiple PVs, in a fashion similar to RAID0.
  • Move online logical volumes between PVs.
  • Split or merge VGs in situ (as long as no LVs span the split). This can be useful when migrating whole LVs to or from offline storage.

It cannot:

  • Mirror whole or parts of LVs, in a fashion similar to RAID1 or RAID5 mirroring of LVs. For this, it is recommended that one use the Linux software RAID driver to mirror the underlying PVs to achieve redundancy.


其實簡單來說,如果在系統中裝有多顆磁碟機的話,用 LVM 可以將數個實體空間整合為一個虛擬的加總空間,不僅如此,還可在不重新開機的情況下,隨時動態進行調整,實在是一個很方便的工具,只是在損壞復原上似乎有點麻煩,這個之後有研究到再來寫好了......

關於 LVM2,網路上有許多相關的資訊,在中文的部分,推薦下面這個連結給大家參考:

http://linux.vbird.org/somepaper/20050621-LVM2.pdf

裡面有將 LVM 的原理說明的很清楚,包括 Physical Vloume、Volume Group、Physical Extent、Logical Vloume、Logical extent....等觀念,瞭解這些觀念之後,在設定 LVM 的過程中才不會手忙腳亂不知所措。

在我實驗的環境中,所使用的是 Ubuntu,而上述連結中所介紹的是 RHEL,雖然兩者在實做的部分有些許不同,但是 LVM 的觀念還是不變的。

當然在調整容量之前,要檢查一下目前磁碟中是否還有空間可以進行擴充,下達以下指令可進行檢查:
# 檢查目前 PV 情形,藍字的部分是還有使用的空間(顯示sdb1磁碟分割中還有空間可用)
[root@nat ~]# pvscan
PV /dev/sda2 VG VG_root lvm2 [186.03 GB / 0 free]
PV /dev/sdb1 VG VG_root lvm2 [298.06 GB / 203.75 GB free]
Total: 2 [484.09 GB] / in use: 2 [484.09 GB] / in no VG: 0 [0 ]

# 檢查目前 LV 情形,藍字的部分是 LV 的名稱,到時候擴充空間時會用到
[root@nat ~]# lvscan
ACTIVE '/dev/VG_root/LV_root' [3.91 GB] inherit
ACTIVE '/dev/VG_root/LV_dw' [275.44 GB] inherit
ACTIVE '/dev/VG_root/LV_swap' [1.00 GB] inherit

以下分別介紹一下在兩種不同的環境下,調整分割區大小的方式:

以下為假設情形:

欲調整 /home 的分割區,將其加大 5GB,假設 /home 的分割區的 LV 位置為 /dev/VG_root/LV_home


RHEL

# 加大 LV(LV_home)容量 5GB
lvextend -L +5000M /dev/VG_root/LV_home

# 調整剛設定好的容量大小
ext2online /dev/VG_root/LV_home


Ubuntu

Ubuntu 的部分就比較困擾一點了,因為系統不允許直接針對已將掛載的分割區進行調整....(這是螢幕上顯示的訊息,搞不好可以,只是我沒找到相關資料....)

當時所顯示的錯誤訊息如下:
/dev/VG_root/LV_home is mounted; can’t resize a mounted filesystem!

因此,我的作法是先到 /etc/fstab 中,把 /home 分割區的掛載先作註解,重新開機後,再進行以下動作:

sudo lvextend -L +5000M /dev/VG_root/LV_home

# 會強制要求進行磁碟檢查
sudo e2fsck -f /dev/VG_root/LV_home

# 此處的指令跟 RHEL 就有落差了
sudo resize2fs /dev/VG_root/LV_home


經過上述的動作就大功告成囉!! 下 "df -h" 就可以看見 /home 分割區增加了 5GB 的空間了!


參考資料