淘寶分布式文件系統(tǒng)TFS安裝配置手冊(cè):DataServer配置
目前的情況,tfs安裝在/usr/local/tfs/。在 /usr/local/tfs/conf/目錄,共有三個(gè)文件需要配置:ns.conf、ads.conf和ds.conf。
各個(gè)文件功能
- ns.conf用于配置nameserver,
- ds.conf用于配置dataserver,
- ads.conf為可選配置文件,用于配置nameserver和dataserver地址信息,可用于快速啟動(dòng)ns和ds。
- rc.conf為可選配置文件,用于配置rcserver相關(guān)信息,主要適用于集群多,應(yīng)用多的用戶,可實(shí)現(xiàn)應(yīng)用資源和集群資源的管理。
- meta.conf為可選配置文件,用于配置metaserver相關(guān)信息,主要用于自定義文件名功能。
- rs.conf為可選配置文件,用于配置rootserver相關(guān)信息,主要用于自定義文件名功能。
- ds.conf 中注意修改的項(xiàng)目
public->log_level=debug #日志文件的級(jí)別
public->port = 9998 #監(jiān)聽(tīng)端口
public->work_dir=/usr/local/tfs #工作目錄
public->dev_name= eth0 #網(wǎng)絡(luò)設(shè)備
public->ip_addr = 192.168.119.217 #本機(jī)IP地址(vip)
dataserver->ip_addr = 192.168.119.145 #NameServer配置HA時(shí)請(qǐng)?jiān)O(shè)置為vip,沒(méi)配置HA時(shí)請(qǐng)?jiān)O(shè)置為主ns的ip
dataserver->ip_addr_list = 192.168.119.145|192.168.119.147 #!nameserver IP地址列表(master, salve的ip地址,只能以’|'分隔)
dataserver->port = 8108 #!NameServer 監(jiān)聽(tīng)的端口, 1024 ~ 55535
dataserver->mount_name = /data/tfs #mount路徑
dataserver->mount_maxsize = 141000000 #mount 時(shí)磁盤(pán)的大小, 單位(KB),TFS將使用這么多的空間134G
dataserver->block_max_size = 67108864 #block ***size
dataserver->mainblock_size = 67108864 #每個(gè)數(shù)據(jù)存儲(chǔ)塊的大小
dataserver->extblock_size = 8388608 #擴(kuò)展塊的大小, 單位(字節(jié))
ds.conf 內(nèi)容 (其中有中文,要保存為UTF-8,不帶標(biāo)簽)
[public]
#日志文件的size,default 1GB
log_size=1073741824
#保留日志文件的個(gè)數(shù),default 64
log_num = 64
#日志文件的級(jí)別, default info,線上使用建議設(shè)為info,調(diào)試設(shè)為debug
#dubug級(jí)日志量會(huì)很大
log_level=debug
#main queue size default 10240
#工作隊(duì)列size, default 10240
task_max_queue_size = 10240
#listen port
#監(jiān)聽(tīng)端口, 1024 ~ 65535
port = 9998
#work directoy
#工作目錄
work_dir=/usr/local/tfs
#device name
#網(wǎng)絡(luò)設(shè)備
dev_name= eth0
#work thread count default 4
#工作線程池 default 4
thread_count = 4
#ip addr
#本機(jī)IP地址(vip)
ip_addr = 192.168.119.217
[dataserver]
#NameServer ip addr(vip)
#!NameServer vip地址
#NameServer配置HA時(shí)請(qǐng)?jiān)O(shè)置為vip,沒(méi)配置HA時(shí)請(qǐng)?jiān)O(shè)置為主ns的ip
ip_addr = 192.168.119.145
#!nameserver IP地址列表(master, salve的ip地址,只能以’|'分隔)
#如果沒(méi)有salve,第二個(gè)ip隨便寫(xiě)一個(gè)
ip_addr_list = 192.168.119.145|192.168.119.147
#nameserver port
#!NameServer 監(jiān)聽(tīng)的端口, 1024 ~ 55535
port = 8108
#備集群NameServer的vip地址, 沒(méi)有搭建主副集群的可以不用配置此項(xiàng)
#slave_nsip = 192.168.0.2:8108
#無(wú)效配置,直接加到slave_nsip項(xiàng)即可
#slave_nsport = 8108
#heart interval time(seconds)
#dataserver 與 nameserver心跳間隔時(shí)間, 單位(秒), default: 2
heart_interval = 2
check_interval = 2
#datafile失效時(shí)間, 單位(秒), default: 90
#expire_datafile_time = 90
#拷貝一個(gè)Block超時(shí)時(shí)間, 單位(秒), default: 180
#expire_clonedblock_time = 180
#壓縮一個(gè)Block超時(shí)時(shí)間, 單位(秒), default: 600
#expire_compactblock_time = 600
#復(fù)制Block線程池的大小, default: 2
replicate_threadcount = 2
#是否寫(xiě)同步日志, defalut: 1
#write_sync_flag = 1
#block ***size
block_max_size = 7549747
#定時(shí)dump統(tǒng)計(jì)信息的間隔時(shí)間, 單位(秒), default: 60
dump_visit_stat_interval = 60
#io操作的閥值, 超過(guò)此值時(shí), 會(huì)警告
#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的***個(gè)數(shù)
#max_crc_error_nums = 4
#eio error的***個(gè)數(shù)
#max_eio_error_nums_ = 6
#超時(shí)block檢測(cè)時(shí)間, 單位(秒)
#expire_checkblock_time = 86000
#cpu使用率
#max_cpu_usage = 60
#dump 統(tǒng)計(jì)信息的間隔時(shí)間, 單位(微秒)
#dump_stat_info_interval = 60000000
#mount路徑
mount_name = /data/tfs
#mount 時(shí)磁盤(pán)的大小, 單位(KB),不要大過(guò)文件系統(tǒng)實(shí)際剩余空間
#***的掛載空間,如果你的/data/tfs1有1T,而設(shè)置了4G ,那只有4G的塊可用空間,剩下的被浪費(fèi)。
#120G ,原來(lái)分134G,存儲(chǔ)區(qū)預(yù)分配時(shí)報(bào)錯(cuò)了
mount_maxsize = 125829120
#文件系統(tǒng)類型: 0: no initialize, 1: ext4, 2: ext3 posix fallocate, 3: ext3 ftruncate
base_filesystem_type = 1
#超級(jí)塊存存儲(chǔ)的保留位置,default: 0
superblock_reserve = 0
#平均文件的大小, 單位(字節(jié))
avg_file_size = 40960
#主塊的大小, 單位(字節(jié))
#每個(gè)數(shù)據(jù)存儲(chǔ)塊的大小
mainblock_size = 7549747
#擴(kuò)展塊的大小, 單位(字節(jié))
extblock_size = 419430
#主塊與擴(kuò)展的比例
block_ratio = 0.5
#hash桶的比例
hash_slot_ratio = 0.5
ds_thread_count = 4
#訪問(wèn)控制ip mask, 可選
#access_control_ipmask = 192.168.0.1
#訪問(wèn)控制文件路徑, 可選
#access_control_file = /home/xxxxx/xxxxxx/tfs/control.file
掛數(shù)據(jù)盤(pán),一臺(tái)服務(wù)器,可以掛載多塊數(shù)據(jù)盤(pán)。
———-查看硬盤(pán)————
fdisk -l 發(fā)現(xiàn)本臺(tái)服務(wù)器上有5塊146G的磁盤(pán),***塊是系統(tǒng)盤(pán)。其它4塊可以做數(shù)據(jù)盤(pán)
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———
分區(qū),格式化之前,如果已掛載,要先反掛載
umount /dev/sdb1
umount /dev/sdc1
umount /dev/sdd1
umount /dev/sde1
———-分區(qū)—————
對(duì)數(shù)據(jù)盤(pán)進(jìn)行分區(qū),一塊盤(pán)分一個(gè)區(qū)就行。
執(zhí)行“fdisk /dev/sdb”命令,對(duì)數(shù)據(jù)盤(pán)進(jìn)行分區(qū);
根據(jù)提示,依次輸入“n”,“p”“1”,兩次回車,“wq”,分區(qū)就開(kāi)始了,很快就會(huì)完成。
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
———–掛載————–
建好目錄,***塊磁盤(pán)就掛載在***個(gè)目錄上。目錄數(shù)據(jù)取決于你磁盤(pán)的數(shù)量。
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
———–加入啟動(dòng)時(shí)自動(dòng)掛載—————-
設(shè)置開(kāi)機(jī)自動(dòng)掛載
[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
————–重啟系統(tǒng)—————————–
查看mount情況
————存儲(chǔ)區(qū)預(yù)分配————————————
注意:掛載目錄是/data/tfs1至/data/tfs(i),其中i為磁盤(pán)號(hào)。
而ds.conf配置文件中的配置 mount_name = /data/tfs 沒(méi)有加(i)
執(zhí)行scripts下的stfs format n (n為掛載點(diǎn)的序號(hào),具體用法見(jiàn)stfs的Usage)。例如stfs format 2,4-6 則會(huì)對(duì)/data/tfs2,
/data/tfs4,/data/tfs5,/data/tfs6,進(jìn)行預(yù)分配。運(yùn)行完后會(huì)在生成/data/tfs2, /data/tfs4,/data/tfs5,/data/tfs6下預(yù)先創(chuàng)建主塊,擴(kuò)展塊及相應(yīng)的統(tǒng)計(jì)信息。
[root@locname conf]# cd /usr/local/tfs/scripts
[root@locname scripts]# ./stfs format 1-4 //分配第1,2,3,4個(gè)存儲(chǔ)區(qū):
————運(yùn)行data server————
有兩種方法:
1)通過(guò)adminserver來(lái)啟動(dòng)dataserver(推薦): 執(zhí)行scripts下的./tfs admin_ds
2)直接啟動(dòng)dataserver,執(zhí)行scripts下的./tfs start_ds 2,4-6, 則會(huì)啟動(dòng)dataserver2,dataserver4,dataserver5,dataserver6
目前我們沒(méi)有配置adminserver的ads.conf, 我們使用方法2來(lái)啟動(dòng)。
cd /usr/local/tfs/scripts
./tfs start_ds 1-4
我們一臺(tái)服務(wù)器上啟動(dòng)了4個(gè)進(jìn)程:
停止: ./tfs stop_ds 1-4。