目前的情况,tfs安装在/usr/local/tfs/。在 /usr/local/tfs/conf/目录,共有三个文件需要配置:ns.conf、ads.conf和ds.conf。
各个文件功能
- ns.conf用于配置nameserver,
- ds.conf用于配置dataserver,
- ads.conf为可选配置文件,用于配置nameserver和dataserver地址信息,可用于快速启动ns和ds。
- rc.conf为可选配置文件,用于配置rcserver相关信息,主要适用于集群多,应用多的用户,可实现应用资源和集群资源的管理。
- meta.conf为可选配置文件,用于配置metaserver相关信息,主要用于自定义文件名功能。
- rs.conf为可选配置文件,用于配置rootserver相关信息,主要用于自定义文件名功能。
- ds.conf 中注意修改的项目
public->log_level=debug #日志文件的级别
public->port = 9998 #监听端口
public->work_dir=/usr/local/tfs #工作目录
public->dev_name= eth0 #网络设备
public->ip_addr = 192.168.119.217 #本机IP地址(vip)
dataserver->ip_addr = 192.168.119.145 #NameServer配置HA时请设置为vip,没配置HA时请设置为主ns的ip
dataserver->ip_addr_list = 192.168.119.145|192.168.119.147 #!nameserver IP地址列表(master, salve的ip地址,只能以’|'分隔)
dataserver->port = 8108 #!NameServer 监听的端口, 1024 ~ 55535
dataserver->mount_name = /data/tfs #mount路径
dataserver->mount_maxsize = 141000000 #mount 时磁盘的大小, 单位(KB),TFS将使用这么多的空间134G
dataserver->block_max_size = 67108864 #block ***size
dataserver->mainblock_size = 67108864 #每个数据存储块的大小
dataserver->extblock_size = 8388608 #扩展块的大小, 单位(字节)
ds.conf 内容 (其中有中文,要保存为UTF-8,不带标签)
[public]
#日志文件的size,default 1GB
log_size=1073741824
#保留日志文件的个数,default 64
log_num = 64
#日志文件的级别, default info,线上使用建议设为info,调试设为debug
#dubug级日志量会很大
log_level=debug
#main queue size default 10240
#工作队列size, default 10240
task_max_queue_size = 10240
#listen port
#监听端口, 1024 ~ 65535
port = 9998
#work directoy
#工作目录
work_dir=/usr/local/tfs
#device name
#网络设备
dev_name= eth0
#work thread count default 4
#工作线程池 default 4
thread_count = 4
#ip addr
#本机IP地址(vip)
ip_addr = 192.168.119.217
[dataserver]
#NameServer ip addr(vip)
#!NameServer vip地址
#NameServer配置HA时请设置为vip,没配置HA时请设置为主ns的ip
ip_addr = 192.168.119.145
#!nameserver IP地址列表(master, salve的ip地址,只能以’|'分隔)
#如果没有salve,第二个ip随便写一个
ip_addr_list = 192.168.119.145|192.168.119.147
#nameserver port
#!NameServer 监听的端口, 1024 ~ 55535
port = 8108
#备集群NameServer的vip地址, 没有搭建主副集群的可以不用配置此项
#slave_nsip = 192.168.0.2:8108
#无效配置,直接加到slave_nsip项即可
#slave_nsport = 8108
#heart interval time(seconds)
#dataserver 与 nameserver心跳间隔时间, 单位(秒), default: 2
heart_interval = 2
check_interval = 2
#datafile失效时间, 单位(秒), default: 90
#expire_datafile_time = 90
#拷贝一个Block超时时间, 单位(秒), default: 180
#expire_clonedblock_time = 180
#压缩一个Block超时时间, 单位(秒), default: 600
#expire_compactblock_time = 600
#复制Block线程池的大小, default: 2
replicate_threadcount = 2
#是否写同步日志, defalut: 1
#write_sync_flag = 1
#block ***size
block_max_size = 7549747
#定时dump统计信息的间隔时间, 单位(秒), default: 60
dump_visit_stat_interval = 60
#io操作的阀值, 超过此值时, 会警告
#max_io_warning_time = 0
#备件类型, 1: tfs, 2: nfs
backup_type = 1
#备件路径
backup_path = /data/tfs
#***datafile值, default: 50
#max_data_file_nums = 50
#crc error的***个数
#max_crc_error_nums = 4
#eio error的***个数
#max_eio_error_nums_ = 6
#超时block检测时间, 单位(秒)
#expire_checkblock_time = 86000
#cpu使用率
#max_cpu_usage = 60
#dump 统计信息的间隔时间, 单位(微秒)
#dump_stat_info_interval = 60000000
#mount路径
mount_name = /data/tfs
#mount 时磁盘的大小, 单位(KB),不要大过文件系统实际剩余空间
#***的挂载空间,如果你的/data/tfs1有1T,而设置了4G ,那只有4G的块可用空间,剩下的被浪费。
#120G ,原来分134G,存储区预分配时报错了
mount_maxsize = 125829120
#文件系统类型: 0: no initialize, 1: ext4, 2: ext3 posix fallocate, 3: ext3 ftruncate
base_filesystem_type = 1
#超级块存存储的保留位置,default: 0
superblock_reserve = 0
#平均文件的大小, 单位(字节)
avg_file_size = 40960
#主块的大小, 单位(字节)
#每个数据存储块的大小
mainblock_size = 7549747
#扩展块的大小, 单位(字节)
extblock_size = 419430
#主块与扩展的比例
block_ratio = 0.5
#hash桶的比例
hash_slot_ratio = 0.5
ds_thread_count = 4
#访问控制ip mask, 可选
#access_control_ipmask = 192.168.0.1
#访问控制文件路径, 可选
#access_control_file = /home/xxxxx/xxxxxx/tfs/control.file
挂数据盘,一台服务器,可以挂载多块数据盘。
———-查看硬盘————
fdisk -l 发现本台服务器上有5块146G的磁盘,***块是系统盘。其它4块可以做数据盘
Disk /dev/sda: 146.6 GB
Disk /dev/sdb: 146.6 GB
Disk /dev/sdc: 146.6 GB
Disk /dev/sdd: 146.6 GB
Disk /dev/sde: 146.6 GB
———-umount———
分区,格式化之前,如果已挂载,要先反挂载
umount /dev/sdb1
umount /dev/sdc1
umount /dev/sdd1
umount /dev/sde1
———-分区—————
对数据盘进行分区,一块盘分一个区就行。
执行“fdisk /dev/sdb”命令,对数据盘进行分区;
根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成。
fdisk /dev/sdb
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
———–格式化———-
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdc1
mkfs.ext4 /dev/sdd1
mkfs.ext4 /dev/sde1
———–挂载————–
建好目录,***块磁盘就挂载在***个目录上。目录数据取决于你磁盘的数量。
mkdir /data/tfs1
mkdir /data/tfs2
mkdir /data/tfs3
mkdir /data/tfs4
mount /dev/sdb1 /data/tfs1
mount /dev/sdc1 /data/tfs2
mount /dev/sdd1 /data/tfs3
mount /dev/sde1 /data/tfs4
———–加入启动时自动挂载—————-
设置开机自动挂载
[root@loctfs scripts]# vi /etc/fstab
加入以下信息
/dev/sdb1 /data/tfs1 ext4 defaults 1 2
/dev/sdc1 /data/tfs2 ext4 defaults 1 2
/dev/sdd1 /data/tfs3 ext4 defaults 1 2
/dev/sde1 /data/tfs4 ext4 defaults 1 2
————–重启系统—————————–
查看mount情况
————存储区预分配————————————
注意:挂载目录是/data/tfs1至/data/tfs(i),其中i为磁盘号。
而ds.conf配置文件中的配置 mount_name = /data/tfs 没有加(i)
执行scripts下的stfs format n (n为挂载点的序号,具体用法见stfs的Usage)。例如stfs format 2,4-6 则会对/data/tfs2,
/data/tfs4,/data/tfs5,/data/tfs6,进行预分配。运行完后会在生成/data/tfs2, /data/tfs4,/data/tfs5,/data/tfs6下预先创建主块,扩展块及相应的统计信息。
[root@locname conf]# cd /usr/local/tfs/scripts
[root@locname scripts]# ./stfs format 1-4 //分配第1,2,3,4个存储区:
————运行data server————
有两种方法:
1)通过adminserver来启动dataserver(推荐): 执行scripts下的./tfs admin_ds
2)直接启动dataserver,执行scripts下的./tfs start_ds 2,4-6, 则会启动dataserver2,dataserver4,dataserver5,dataserver6
目前我们没有配置adminserver的ads.conf, 我们使用方法2来启动。
cd /usr/local/tfs/scripts
./tfs start_ds 1-4
我们一台服务器上启动了4个进程:
停止: ./tfs stop_ds 1-4。