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目录