摘要
利用coda分布式文件系統來實現系統上某些文件的同步,是一種常用的方法,這裡介紹coda的安裝和配置。(2003-05-25 21:04:38)
By 敢為天下先
coda分布式文件系統
coda分布式文件系統分為服務器和客戶端,服務器又分為SCM(System Control Machine) server和non-SCM server,SCM服務器負責與其它服務器同步,SCM服務器只有一個,而non-SCM服務器可以有多個。
客戶端在與服務器建立連接之後會在本地生成一個新的文件系統/coda,這個文件系統下的所有文件是與服務器上的一個用戶數據目錄保持同步的,服務器上的用戶數據目錄是在安裝服務器軟件時指定專門用來存放用戶數據的,即在客戶端的/coda目錄下保存的所有文件,實際上都是服務器上的一個備份,只要服務器上的文件發生了變化,則/coda目錄下的文件也會發生相應的變化,這就是說,只要有一個客戶端操作了/coda下的某個文件,則所有客戶端/coda下的對應文件就都要發生變化,同時服務器之間也要保持同步。
安裝實例:
一、SCM服務器安裝
1.需要的分區/目錄
/vice 存放配置文件
/vicepa 存放用戶數據文件
/LOG RVM處理日志用,最大為50M,如果為分區,不要自動mount
/DATA RVM數據存儲區,大小為/vicepa大小的4%左右,如果為分區,不要自動mount
以上都可以為分區或者是目錄。
2.安裝軟件
lwp-release.i386.rpm
rvm-release.i386.rpm
rpc2-release.i386.rpm
coda-debug-server-release.i386.rpm
3.配置coda服務器
運行vice-setup
按照配置向導一步一步配置,需要注意的有:
作為SCM服務器安裝;
設置用戶;uid和用戶名,在客戶端登錄服務器時要用到
設置root volume:後面創建root volume時用到
4.運行coda服務器
(1)在運行前需要修改一個配置文件,/etc/coda/server.conf,把文件中的ip地址和主機名參數設置好
(2)運行相關程序
auth2
rpc2portmap
updatesrv
updateclnt -h SCM_SERVER_NAME
startserver &
(3)檢查服務運行是否正常
tail -f /vice/srv/SrvLog
5.關閉命令
volutil shutdown
然後查看日志(/vice/srv/SrvLog)檢查是否完全關閉
6.創建root volume
createvol_rep codaroot E0000100 /vicepa
其中codaroot為配置SCM的時候(vice-setup)指定的,/vicepa為用戶數據目錄,也是配置的時候指定的。
二、non-SCM服務器安裝
安裝過程基本上都是一樣,只是在配置時,需要指定服務器為non-SCM服務器,同時指定SCM服務器的主機名(需要在hosts文件中指定域名解析)。
在運行non-SCM服務器時有一點不一樣:
auth2 -chk
rpc2portmap
updatesrv
updateclnt -h SCM_SERVER_NAME
startserver &
然後檢查目錄/vice/db,看是否從SCM服務器上把相關的配置文件拷貝了過來。
三、客戶端的安裝
1.安裝軟件包
lwp-release.i386.rpm
rvm-release.i386.rpm
rvm-tools-release.i386.rpm
rpc2-release.i386.rpm
coda-debug-client-release.i386.rpm
2.配置
運行 venus-setup coda-servers cach-size
例如:venus-setup sproxy,SWWW 4000(40M)
coda-servers表示該客戶端可以與哪些coda服務器連接,cach-size表示/coda文件系統的大小,即用來保存所有需要保持同步的文件的容量。
3.運行
venus &
4.檢查日志
tail -f /usr/coda/etc/console
5.停止
vutile shutdown
四、coda的使用
在服務器和客戶端都安裝好了之後,就可以開始使用coda文件系統了,coda文件系統的使用可以分為3個步驟:
1.在SCM上創建volume
volume實際上是這樣一個概念,它是一個比文件分區小,比文件目錄大的一種文件組織方式,即在一個volume中可以包含很多個文件目錄或者文件。
2.在客戶端(coda-client)上mount創建的volume
3.在客戶端上使用coda文件系統,如,文件的創建、刪除等
下面舉例說明以上3個步驟:
1.在SCM上創建root volume
createvol_rep codaroot E0000100 /vicepa
其中codaroot是在配置SCM的時候指定的root volmue的名字,/vicepa為用戶數據目錄,也是在配置的時候指定的。
2.如果存在多個coda server,即存在non-SCM,則還可以修改兩個文件,/vice/db/VSGDB和/vice/db/servers,
/vice/db/VSGDB:
E0000100 sproxy swww sproxy2
其中:sproxy為SCM,swww,sproxy2為non-SCM
/vice/db/servers:
sproxy 1
swww 2
sproxy2 3
sproxy,swww,sproxy2為各個主機的主機名,1,2,3為配置過程中指定的serverid。
3.創建其他的volume,如,創建一個名為apache的volume
首先在SCM的/vice/db/VSGDB文件中增加一行:
E0000100 sproxy swww sproxy2 (已有的root volume)
E0000101 sproxy swww sproxy2 (增加的)
然後在SCM上運行(sproxy為SCM):
bldvldb.sh swww
bldvldb.sh sproxy2
最後創建volume:
createvol_rep apache E0000101 /vicepa
在服務器上創建了volume後,就可以在client上使用volume了。
4.用clog命令登錄coda服務器
clog coda
passWord:changme
或者是:clog coda<pass(配置文件)
首先要保證venus已經運行起來,coda用戶是在配置服務器的時候指定的,也可以使用在服務器上用程序添加的用戶,changme為默認口令,即沒有修改過的口令。
5.mount服務器上存在的volume
cfs mkmount /coda/apache apache
把apache volume mount在/coda/apache目錄
6.操作/coda/apache目錄
right">