前幾天的安裝了一臺tfs,今天上午的時候剛剛到了機房。今天這裏就給你們介紹下tfs的如何進行配置並啓動。安全
淘寶分佈式文件系統有2個節點,NameServer負責Block的建立,刪除,複製,均衡,整理,NameServer不負責實際數據的讀寫,實際數據的讀寫由!DataServer完成。DataServer主要的功能是的:負責實際數據的存儲和讀寫,bash
先將給你們看看我線上環境的配置。網絡
1.nameserver
負載均衡
[root@kw-tfs1 conf]# pwd tcp
/usr/local/tfs228/tfs_bin/conf分佈式
[root@kw-tfs1 conf]# ide
[root@kw-tfs1 conf]# pwd 工具
/usr/local/tfs228/tfs_bin/conf學習
[root@kw-tfs1 conf]# cat ns.conf ui
[public]
#log file size default 1GB
log_size=1073741824 #默認log文件超過1G會轉存
#log file num default 64
log_num = 15 #保存的日誌個數
#log file level default debug
log_level=info #日誌級別
#main queue size default 10240
task_max_queue_size = 10240 #工做隊列
#listen port
port = 18108 #使用的端口 默認8108 建議修改
#work directoy
work_dir=/data/tfs_workdir # 工做目錄 日誌會在這下面產生
#device name (vip device)
dev_name=eth0 # ns服務ip所在的設備名字
#work thread count default 4
thread_count = 4 #工做線程池
#ip addr(vip)
ip_addr = 192.168.1.150 #本機IP地址(vip),配置ha時爲vip,沒配置能夠爲主ns的ip,咱們這裏麼有使用VIP,使用另外的方法實現
[nameserver]
safe_mode_time = 300 #系統保護時間 保護時間不作任務操做
#nameserver IP地址列表(master, salve的ip地址,只能以'|'分隔)
#單臺nameserver時,另外一個ip配置爲無效ip便可
ip_addr_list = 192.168.1.150|192.168.1.152 #這裏150是咱們主的IP,152是咱們slave的ip
group_mask = 255.255.255.255
block_max_size = 62914560 #Block size的最大值
max_replication = 2 #block的最大副本 單臺ds的時候請設置爲1
min_replication = 1 #已經沒在使用了
# use capacity ratio
use_capacity_ratio = 98 # dataserver 容量使用的百分比
# block use ratio
block_max_use_ratio = 98 #塊容量使用的百分比
#heart interval time(seconds)
heart_interval = 2 # dataserver和nameserver之間的心跳時間
# object dead max time(seconds) default
object_dead_max_time = 300 # object死亡的最大時間
#compact hour range (def 2~6)
compact_hour_range=2~6
# cluster id defalut 1
cluster_id = 1 #集羣號
# block lost, replicate ratio
replicate_ratio_ = 50 # Block當前備份數與最大備份數百分比,若是大於這個百分比,就開始複製
max_write_filecount = 100 #每一個DataServer 主可寫塊的大小, default: 3
heart_thread_count = 2 #dataserver 與 nameserver 的心跳線程池的大小, default: 2
heart_max_queue_size = 10 #dataserver 與 nameserver 的心跳工做隊列的大小, default: 10
repl_wait_time = 1800 #block 缺失備份時, 須要等待多長時間才進行復制, 單位(秒), default: 240
compact_delete_ratio = 15 #block進行壓縮的比例, block 刪除的文件的比例達到這個值時進行壓縮
compact_max_load = 200 #block進行壓縮時, dataserver的最大負載,超出這個值dataserver,不進行壓縮
object_clear_max_time = 300 # object 清理的時間, 單位(秒), default: 300
#not use
max_wait_write_lease = 15 #nameserver上出現租約等待時, 阻塞線程最大個數, 這個值最好是工做線程的一半
#not use
lease_expired_time = 3 #租約刪除的最長時間, 單位(小時), default: 1
#not use
max_lease_timeout = 30000
#not use
cleanup_lease_threshold = 102400 #清理租約的閥值, default: 102400
#not use
build_plan_interval = 10 #建立計劃的間隔時間, 單位(秒), default: 30
#not use
run_plan_expire_interval = 120 #計劃超時時間, 單位(秒), default: 120
#not use
build_plan_ratio = 25 #建立計劃的百分比, 計劃數量 = dataserver 數量 * build_plan_ratio
dump_stat_info_interval = 60000000 #定時dump統計信息的間隔時間, 單位(微秒), default: 60000000
#not use
build_plan_default_wait_time = 2 #建立計劃等待時間, 主要用有不少緊急複製時,單位(秒), default: 2
#not use
balance_max_diff_block_num = 5 #負載均衡時block相關的個數, default: 5
add_primary_block_count = 3 #每次新增Block的個數, default: 3
block_chunk_num = 32 #存儲block桶的個數, default: 32
#not use
task_percent_sec_size = 200 #每一個任務處理的預期時間, 單位(微秒), default: 200
task_max_queue_size = 10000
oplog_sync_max_slots_num = 1024 #同步日誌緩衝區slot的大小, 超出這個值會寫入磁盤, default: 1
oplog_sync_thread_num = 1
上面就是我線上ns的配置的文件,其中標紅的地方被我修改了。若是大家是和我同樣安裝的2.28版本的一樣修改上面的配置就能直接使用了。
啓動ns mkdir /data/tfs_workdir /usr/local/tfs228/tfs_bin/scripts/tfs start_ns #中止的話使用stop_ns netstat -nltp |grep nameserver
從上面能夠看到的 監聽的ip和端口是的0.0.0.0和8108, ns配置文件中無論ip寫的是內網仍是外網的狀況下都是監聽0.0.0.0,因此咱們還須要藉助額外的iptables來增長安全性
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT #讓咱們本身機房可以正常訪問 iptables -A INPUT -s 0.0.0.0/0 -p tcp -m tcp --dport 8108 -j DROP #禁掉8108端口的訪問
我這邊線上的防火以下 :
iptables -X iptables -F #限制咱們2個機房進出的網速的 iptables -A INPUT -s 192.168.2.0/24 -m limit --limit 1500/s --limit-burst 100 -j ACCEPT iptables -A INPUT -s 192.168.3.0/24 -j DROP iptables -A OUTPUT -d 192.168.2.0/24 -m limit --limit 1500/s --limit-burst 100 -j ACCEPT iptables -A OUTPUT -d 192.168.3.0/24 -j DROP #容許2個ip的的訪問 iptables -A INPUT -s 192.168.2.0/24 -j ACCEPT iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT #禁用其餘ip訪問的 9998-10011(咱們ds使用端口)端口和8108(ns) 爲了節約成本我這邊將ns和ds安裝在一塊兒了,後續會分開 iptables -A INPUT -s 0.0.0.0/0 -p tcp -m tcp --dport 9998:10011 -j DROP iptables -A INPUT -s 0.0.0.0/0 -p tcp -m tcp --dport 8108 -j DROP
2.dataserver
[root@kw-tfs1 conf]# cat ds.conf
[public]
#log file size default 1GB
log_size=1073741824
#log file num default 64
log_num = 7
#log file level default debug
log_level=info
#main queue size default 10240
task_max_queue_size = 10240
#listen port
port = 9998 # dataserver端口號從哪裏開始
#work directoy
work_dir=/data/tfs_workdir #工做目錄
#device name
dev_name= eth0 #綁定ds的網絡設備
#work thread count default 4
thread_count = 4
#ip addr
ip_addr = 192.168.2.3 #本機ds的ip
[dataserver]
#nameserver ip addr(vip)
ip_addr = 192.168.1.150 #ns的vip 沒有就寫主nsip,我這裏就是主ns地址
ip_addr_list = 192.168.1.150|192.168.1.152 #主和備的ns地址沒有備的就隨便寫一個ip
#nameserver port
port = 8108 #ns的端口號
#slave_nsip = 192.168.0.2
slave_nsip = 183.60.41.3:8108 #slave tfs機器的地址 (第二套tfs集羣,咱們這個已經下線了)
#heart interval time(seconds)
heart_interval = 2
check_interval = 2
replicate_threadcount = 2
dump_visit_stat_interval = 60
backup_type = 1
#not used.
backup_path = /data/tfs_workdir/backup
max_data_file_nums = 100
#max_crc_error_nums = 4
#max_eio_error_nums_ = 6
#expire_checkblock_time = 86000
#max_cpu_usage = 60
#dump_stat_info_interval = 60000000
mount_name = /kbfs/db # mount路徑 磁盤須要掛載到這裏
mount_maxsize = 1854982720 #每一個磁盤格式化的大小 這裏使用的單盤2T參數
#mount_maxsize = 364996
base_filesystem_type = 1
superblock_reserve = 0
avg_file_size = 40960
mainblock_size = 67108864
extblock_size = 4194304
block_ratio = 1
hash_slot_ratio = 0.5
ds_thread_count = 4
這個就是我這邊線上的dataserver參數了。
格式化的和啓動ds
mkdir /data/tfs_workdir/backup -p mkdir /kbfs/db{1..7} #格式化磁盤掛載地址 ### 格式化7塊磁盤(全新的)不是全新的,按照本身學習格式話就好了 mkfs.ext4 /dev/sdc <<END y END mkfs.ext4 /dev/sdd <<END y END mkfs.ext4 /dev/sde <<END y END mkfs.ext4 /dev/sdf <<END y END mkfs.ext4 /dev/sdg <<END y END mkfs.ext4 /dev/sdh <<END y END mkfs.ext4 /dev/sdb <<END y END cat >>/etc/fstab <<END /dev/sdb /kbfs/db1 ext4 defaults 0 0 /dev/sdc /kbfs/db2 ext4 defaults 0 0 /dev/sdd /kbfs/db3 ext4 defaults 0 0 /dev/sde /kbfs/db4 ext4 defaults 0 0 /dev/sdf /kbfs/db5 ext4 defaults 0 0 /dev/sdg /kbfs/db6 ext4 defaults 0 0 /dev/sdh /kbfs/db7 ext4 defaults 0 0 END mount -a #開始格式爲tfs塊文件 /usr/local/tfs228/tfs_bin/scripts/stfs format 1-7 #格式的1-7磁盤 清除使用clear /usr/local/tfs228/tfs_bin/scripts/tfs start_ds 1-7 #啓動ds1-7 啓動單個單個數字就好 e.g. /usr/local/tfs228/tfs_bin/scripts/tfs stop_ds 1-7 #中止的1-7 /usr/local/tfs228/tfs_bin/scripts/tfs stop_ds 4 #中止ds4 netstat -ntlp |grep dataserver
查看啓動狀況
最後看下咱們線上使用的狀況
好了今天給你們介紹的如何啓動和淘寶分佈式系統的ns和ds,下次咱們來談談如何使用tfs系統存儲小文件系統以及一些工具的介紹。