TFS开源用户常见问题(FAQ)zydcu

@HUST张友东work@taobaozyd_com@126.com

分类:LINUX

2014-03-0619:06:32

TFS适用场景

TFS提供海量文件的可靠存储,尤其适合海量小文件的存储;TFS没有传统文件系统的目录树结构,所有文件处于一个扁平化的名字空间;TFS不支持posix接口,必须通过TFS提供的客户端API(read/write/delete)来读、写、删文件。

TFS最大集群规模

经过实践的最大规模:单集群7PB+存储容量、400+台机器、1000亿+文件(2014年2月数据);理论上最大集群规模受限于NS的内存大小、网络处理能力。

TFS对大文件的支持

TFS最初开发是针对小文件存储,但TFS也提供了大文件的存取接口,支持大文件没有在服务端做任何特殊改动,而是通过在客户端把大文件划分成多个“小文件分片”来存储,TFS大文件最大为140G,主要受限于分片元信息的大小。

TFS对自定义文件名的支持

默认情况下(只部署NS和DS),往TFS存储一个文件后,TFS的客户端会返回一个T开头的文件名,通过该文件名就能从TFS里读到存储的文件。同时TFS支持用户自定义文件名,但需要部署和rootserver,metaserver依赖mysql来存储“用户自定义文件名”到“TFS文件名”的映射关系,rootserver用来管理多个metaserver。

自定义文件名提供create_dir、create_file、ls_dir、write_file、read_file、delete_file等接口。

TFS对文件去重的支持

默认情况下,TFS存储两个内容相同的文件,会得到两个不同的文件名(对应server端的两份数据)。

TFS客户端提供了文件去重存储接口,TFS的去重依赖于(阿里的一个key/value存储系统),在tair里存储(文件md5、size)==>(TFS文件名)的映射关系。如果使用去重存储接口,客户端首先会根据文件的md5和大小等信息到tair查询一下,看有没有存储过相同内容的文件,如果有直接返回对应的TFS文件;如果tair中没有对应的映射关系,就插入一条新的映射记录,用于去重。

TFSNS单点问题

NS是TFS集群的中心管理节点,TFS通过主备HA的方式来解决单点问题。正常情况下,所有的操作由主NS完成,当主NS服务挂掉时,服务会立即切换到备机。为了保证备机立即能接管服务,TFS做了如下工作:

TFS是否支持异地容灾

TFS支持主备集群的模式,在两个机房分别搭建集群,可将其中一个作为主集群,将另一个配置为备集群,所有写入主集群的文件都会同步到备集群。

TFS的一致性语义

TFS性能如何

不同的工具、不同的测试方法、不同的测试环境得出来的结果都不一样,理论分析下最差情况.

以读小文件(2M以下)为例,假设没有OS的pagecache,每一次读请求对应DS的一次磁盘随机IO(大部分情况下是这样的)而磁盘(假设为SATA盘)每秒处理随机读到能力大概在80左右,也就是说单块盘能达到的qps为80/s,假设一台机器10块磁盘,则该机器能达到的qps为800/s。

而实际上,受操作系统缓存、访问特性、集群容量使用(容量使用越小,存储的数据的局部性越高)等因素的影响,机器的实际qps能远大于这个值,实际的随机访问测试中,单台机器(11块SATA盘)qps有超过2000。

如何获取TFS

tfsserver(含C++客户端)

java-client:nginx-module:应该使用哪个版本的TFS

目前TFS有三个大的稳定版本,1.3、2.0、2.2,大版本内部的升级主要是修复bug、添加小的功能,小版本最新的是最稳定的版本;建议用户使用2.2的最新版本2.2.16。在进行server升级时,NS、DS应该一直使用同一个版本,否则有可能出现协议不兼容的情况。

2.6版本变化较大,与上述的3个版本,数据存储的格式都不兼容,不能直接升级,建议开源用户暂时不要使用。

TFS运行环境要求

TFS有哪些运维工具

TFS是否有压力测试工具

tfs-src/tests/batch目录下有三个工具test_batch_write、test_batch_read、test_batch_mix,标准输出为测试结果,标准错误为测试日志。

test_batch_write工具往集群写入文件,写入的文件生成的文件名,在当前目录的wf_文件里(代表线程号)

-dnsip:port写入集群的NS地址(ip:port形式)-c每个线程写入次数-r写入文件的大小范围,low:high(bytes),实际数据随机生成-t写入线程数test_batch_read工具从集群读入文件,其读取的文件为test_batch_write写入的文件,每个线程从对应的wf_*读取文件列表

-dnsip:port写入集群的NS地址(ip:port形式)-c每个线程读取次数-t读取线程数-s0/1是否随机读取;如果为1,n号线程会先将wf_n文件里的文件列表随机打散,然后再根据文件名读取文件test_batch_mix工具进行读、写、更新、删掉混合测试,根据配置的比例,先写入一批文件,然后选择部分文件进行读、或者更新删除。

-dnsip:port写入集群的NS地址(ip:port形式)-c每个线程进请求次数-r写入文件的大小范围,low:high(bytes),实际数据随机生成-t线程数-oread:write:delete:update比例,比如10:10:2:2TFS能否在单台机器上运行

TFS的NS、DS服务是可以部署在同一台机器上的,另外还有个限制,机器数不能小于配置的副本数,如果只有1台机器,则只有将副本数配置为1。

副本数应该配置多大

生产环境集群副本数据建议配置为3份,有条件的话,最好做异地容灾,配置备份集群(重要的数据,容灾是必不可少的)。

生产环境NS应该使用什么配置的机器

生产环境DS应该使用什么配置的机器

如果CPU配置还行,可以在DS上部署一些CPU密集型的应用,来充分利用CPU资源,比如阿里将图像处理服务器跟DS部署在同一台机器。

NS、DS服务器上线前需要修改什么系统配置么?

一个DS管理多大存储空间比较合适

单台物理机上,每个DS进程管理一块磁盘,2T及以下的磁盘完全没有问题;4T盘刚投入线上使用,应用还不是太成熟(慎用)。

DS上主块、扩展块大小以及比例应该怎么配置

经验值,主块64M、扩展块4M,主块/扩展块(block_ratio)=1,如果更新比较多,block_ratio可以调小点。

日志级别应该怎么配置

TFS里的日志级别有4种,生产环境建议配置为INFO级别

集群里必须包含主备NS么

备NS不是必须的,但生产环境强烈建议配置主备做HA

NS的HA如何配置

假设192.168.1.1是vip,主备nameserver的地址分别为192.168.1.101,192.168.1.102

vip必须配置在主备nameserver其中之一上,NS启动时,检测到vip落到自己身上,就确定自己是主NS

在192.168.1.101的ns.conf里

[public]#这里配置NS的vip,如果没有备NS,配置主NS的ip即可ip_addr=192.168.1.1[nameserver]#这里是主备NS的实际ip地址,如果没有备,将其中一个配置为无效地址ip_addr_list=192.168.1.101|192.168.1.102在192.168.1.102的ns.conf里

[public]#这里配置NS的vipip_addr=192.168.1.1[nameserver]#这里是主备NS的实际ip地址,如果没有备,将其中一个配置为无效地址ip_addr_list=192.168.1.101|192.168.1.102主备NS的配置,不管是否有vip,ip_addr这个配置项在主备上一定是相同的,不然就有可能出现两个主了。

NS的HA必须使用heartbeat软件?

任意能实现虚拟ip切换到软件都可以,比如pacemaker、keepalived等

主备集群如何配置?

在主集群的所有DS上配置备集群的NS地址(ip:port),需重启DS生效

slave_nsip=slave_cluster_ns_ip:port搭建备集群时,如果主集群里已经有数据,应该怎么同步到备集群?

TFS提供了集群间同步文件的工具,sync_by_blk、sync_by_file

sync_by_blk根据“给定的blockid列表”,将这批block里所有的文件从源集群同步到目标集群;sync_by_file根据“给定的TFS文件列表”,将这批文件从源集群同步到目标集群。

-s源集群NSip:port-d目标集群NSip:port-fblock/filelistblock或者文件列表,每行一个-e是否同步已经处于删除状态的文件(不建议)-mmodifytime,如20140210只同步20140210写入或修改的文件-p日志目录,默认./logs-l日志级别,默认INFONS、DS的配置项是否能在线修改?

DS的配置不能在线修改,主要原因

集群如何升级能不影响服务?

生产环境下,不影响服务的升级步骤

文件删除了,但存储空间没有回收

TFS的删除操作并不会立即回收文件的存储空间,删除只会将文件设置成已删除状态,当一个block内被删除的文件数(或文件总大小)超过一定比例(可配置)时,NS会对该block发起压缩(compact),此时才会回收删除文件的存储空间;compact通常配置在访问低峰期执行。

compact_delete_ratio=10#block删除文件数或文件大小超过10%,才会对block做compact_compact_hour_range=1~9#compact只在1点到9点做**有磁盘坏掉了,NS没有立即复制丢失的block?**

NS上的后台任务可以关闭么

如何查看集群的容量使用情况,使用到多少应该扩容

ssm-sns_ip:port-i"server"或者ssm-sns_ip:port-i"machine"前者以DS(磁盘)为单位展示,后者以机器为单位展示

通常使用到85%-90%就应该及时扩容了,具体要根据数据增长速度、集群规模来定

集群刚搭建好,还没有写任何数据,ssm就发现集群容量使用并不是0%?

ssm看到的容量使用百分比是“使用的block数/总的block数”,一个block一旦创建就认为是使用了,即使block里还没有存储任何文件。

NS启动后,会为每个dataserver创建max_write_filecount(ns配置项)个masterblock(写的时候的主副本)。

也就是说一个集群搭建完后,不写任何数据的情况下,这个集群就会有max_write_filecount*ds_process_num*max_replication左右个block创建出来。

在写数据的过程中,往这些已经创建的block里写文件是不影响使用容量的,因为从创建时刻他们已经计算到使用容量里了;在不断写到过程中,如果有block满了,就会创建新的block,这时使用容量又会增加。

所以ssm看到的集群使用容量可能有max_write_filecount*ds_process_num*max_replication/total_block_count的误差,但用这个使用百分比指导扩容是完全没问题的。

TFS扩容时,假设副本数为2,增加的机器数一定要是2的整数倍?

扩容可以是任意数量的机器,机器配置好DS的服务,将每块磁盘对应的服务都启动起来即可,通过ssm来观察扩容的机器是否正常上线工作了。

NS的cpu利用率较高,是否正常

NS要服务客户端的请求,还要处理DS的心跳、block汇报等,还要负责监视集群的block、server状态,CPU占用率偏高是正常的。

如何监控TFS

TFS集群需要重点监控及注意的地方

做文件存储,访问文件时就得打开文件啊

我ulimit-n设置的为65535时确实遇到了“toomanyxxxx”的错误,改成ulimit-n131072,重启ds就好了;就是不明白为啥会需要那么多,同一个时刻怎么会需要打开那么多文件???

主备实时热备+客户端缓存

这种结构其实就是传统的HA模式,瓶颈就是NAMESERVER。如何解决这个瓶颈呢!!??

THE END
1.三分钟短讯:短信测压在线软件的优点短信测压app在当今数字化的网络世界中,短信测压网站作为一种特殊的存在,引发了诸多关注与讨论。这些网站声称能够对短信系统进行压力测试,但实际上却隐藏着复杂的技术机制以及不容忽视的风险隐患。 推荐短信测压网站在线使用(点击文章跳转) 短信测压网站的运作原理往往基于模拟大量短信的发送请求,以此来检验目标短信系统在高负载情况https://www.jianshu.com/p/4201480b5d59
2.使用ApacheJMeter计划负载测试在本部分中,你将探索负载测试并了解如何将负载测试添加到管道。 负载测试使用 Apache JMeter 来模拟同时访问 Web 应用的多个用户。 测试在过渡环境中从运行在 Azure 应用服务上的应用提取 Web 内容。 Tim 首先在便携式计算机上打开 Apache JMeter 用户界面。 他运行一个基本测试计划。 然后,Tim 和 Mara 将测试计划https://docs.microsoft.com/zh-cn/learn/modules/run-non-functional-tests-azure-pipelines/4-plan-load-tests
3.超负荷安全处理综合压力测试LinuxC++网络编程超负荷安全处理、综合压力测试 返回 Linux C++网络编程 共36节9220人在学课程详情 ¥798.00订阅全部 课程目录 讨论留言 课程介绍 进入nginx之门 nginx开发初步 服务器程序框架初步 网络通讯实战 服务器业务逻辑处理框架 画龙点睛之服务器安全与完善 过往总结、心跳包代码实战https://download.csdn.net/learn/11109/258519
4.赛前再测:网络略显疲态,降速明显进入到工人体育场看台区域,我们选择了六看台上位置,其周边的八、七、五、四、三、二、一看台都为套票区域,并且六看台下为“绿色狂飙”球迷组织,六看台上也有一部分球迷组织,因此这个区域将在开场之后成为人员最密集的看台,为我们之后的4G网络压力测试进一步增加难度。首先,我们先来看看在刚刚入场之后,看台仅有2000人https://m.zol.com.cn/miparticle/4467465.html?ivk_sa=1023345q
5.Vps也可以根据指南最后的压力测试来确定最大并发数,确定后,将下面的命令中的 10 改为你确定的并发数即可,其它数值如 5 不要修改。 请复制命令后到putty直接按鼠标右键粘贴执行: sed -i -e "s/^blank:*StartServersblank:*.*/StartServers 5/" \ -e "s/^blank:*Minhttps://wiki.ubuntu.org.cn/index.php?title=Vps&oldid=155086
6.软件测试面试必杀篇:2024软件测试面试八股文宝典800道软件测试面试真题,高清打印版打包带走,横扫软件测试面试高频问题,涵盖测试理论、Linux、MySQL、Web测试、接口测试、App测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题,命中率杠杠的,绝对是测试人的福音,面试者的最强武器。 https://maimai.cn/article/detail?fid=1834543922&efid=hd_N8vt67RYeT16kXOYD4Q
7.性能测试的基本概念和重要指标性能测试有助于检查应用程序是否有能力扩充更多的用户量。 有助于检查应用程序的健壮性产品的时间通过压力测试,我们可以检查应用程序在工作负载高于预期或高于应用程序阈值时的稳健性。 有助于检查应用程序的可靠性进行不同类型的性能测试是为了检查应用程序是否可靠,是否提供了正确的和一致的输出。性能测试,如负载测试和https://www.ctyun.cn/zhishi/p-422353
8.黑龙江广播电视台问:线上学习期间发生服务器崩溃、网络堵塞等突发问题,怎么办?答:工信部门和网络运营企业将尽最大能力提供技术保障,同时,电教、信息等部门将提供全程技术保障,确保网络通畅运行。各地和学校线上开课前,会开展2-3次全员参与的、情景式的网络压力测试和负载测试。各地教育局也会合理规划中小学生线上教学安排,指导中小https://www.hljtv.com/news/m/2020-02-27/753503.shtml
9.优考试在线考试系统压力测试报告优考试注意:在压测中,系统有一点小的超时问题,超时问题主要是受网络波动影响,这个问题并不会影响正常的结果,可以放心使用。 压力测试报告文件? 下面是优考试在线考试系统压力测试报告文件,可下载进行查阅。(点击下载附件)https://www.youkaoshi.cn/help/stress-testing/
10.免费在线短信压力测试轰炸测压(网页版)–APP喵短信压力测试网页版 本文更新于: 2024年12月9日 之前分享的工具大都失效了,还是有很多人来问,阿喵就分享一下在线网页版的,刚测试的是ok的,如果打不开了,或者没效果了就是失效了,那就等更新,不要来问多少钱怎么买,阿喵我也不知道,我就是找网上的资源,并不提供服务。而且阿喵我的建议是不要付费。分享此短https://www.appmiu.com/10618.html
11.商密在线网络架构 对于高峰期带宽保障是要在当初规划设计网络时就需要考虑好,同时也要考虑安全域以及IP段的分配和预留。国外对这方面,通常还会做业务影响分析(BIA,Business Impact Analysis),不过公司越大做起来越复杂,能做得起BIA的往往都不是普通企业。此外,要进行压力测试,做好带宽的冗余。对于如今的企业来说,无论是带宽https://www.cisp-cte.com/importantNewsDetail/?id=337
12.谢登科:电子数据网络在线提取规则反思与重构澎湃号·政务比如在国某提供侵入、非法控制计算机信息系统的程序、工具案中,侦查机关就通过网络在线提取来收集涉案网站公开发布的网页信息、神盾DDOS-压力测试系统软件等电子数据。其二,作为网络通信信息的电子数据。此类电子数据主要包括E-mail、手机短信微信、QQ聊天记录、通信群组等网络应用服务的通信信息。比如在李某侵犯公民个人信息https://www.thepaper.cn/newsDetail_forward_7211240
13.好消息!!!太原五中信息学奥赛网络在线题库上线啦!两年前策划准备搭建五中信奥队自己的题库以解决目前存在的这些问题。之后开始有意识的分类、分难度整理不同类别的题目,本地多次测试搭建系统。 在线题库租用阿里云服务器,在此服务器进行搭建。 在新高一的学科营上,首次进行题库多用户使用,也顺便对题库做了压力测试,同时间段上千的点击量,题目提交评测量,题库运行https://www.meipian.cn/2bbvi4kp
14.EduSoho阔知网络——数字化培训平台企业内训系统/在线网校系统/“Scaleout”横向扩展技术,通过国家软件评测中心万人并发测试。深度压力测试,确保高负载下仍稳定运行 实惠 结合SaaS2.0服务方式及教育云动态转码技术,大幅降低教育机构的系统搭建、运维及云流量成本 灵活 10万家网校需求汇总,平均4.8天/次产品迭代,推动产品快速更新代码开源配合高拓展性架构,轻松打造个性化网校 http://edusoho.cn/
15.企业中高层时事解读课2022第41期(总期140期)在线培训课程近年来,中国银保监会持续深化保险营销体制改革,推进保险销售能力资质分级工作,明确要求行业自律组织发挥平台优势,研究保险产品销售环节风险,建立销售人员销售能力资质分级体系和相应的培训测试机制,严格销售资质分级管理。保险业协会充分调研行业销售人员业务状况和制度环境,顺应营销变革方向,研究起草了《建设规划》草案,在行业https://www.zzqyj.net/?list_89/1417.html
16.硬朗大将在线秀肌肉!影驰RTX4070SUPER大将评测AV1是新一代视频编码格式,在同画质分辨率的条件下,AV1编码相比同类编码器体积缩小30%,更适合网络高清直播。RTX 40显卡作为市面上支持AV1硬编码的显卡,目前的主流创作软件如Adobe Premiere Pro、DaVinci Resolve、剪映等等都增加了对NVIDIA AV1硬编码的支持。这次AV1转码测试主要通过影驰 RTX 4070 SUPER 在剪映中进https://www.gamersky.com/hardware/202401/1697757_2.shtml
17.nginx的压力测试访问方式及加密xiaoxiaozhou的技术博客Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP代理服务器。今天我们将从多方面来对nginx来作介绍,包括诸如nginx和http的压力测试、nginx的访问方式、nginx的加密访问等 一、安装nginx 1、拆解并安装 tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src http://xiaoxiaozhou.blog.51cto.com/4681537/1305217/
18.苹果在线服务瘫痪11个小时后恢复BBC | 欧洲两大银行未能通过美国压力测试 欧洲两大银行——西班牙桑坦德银行和德国德意志银行未能通过美国近日的一项压力测试,此项测试旨在评估银行是否有能力承受下一次经济危机。 美联储在测试中考查了在美国运营的大银行能否在承受压力的情况下照常向家庭和企业借贷。 https://news.cri.cn/2015-3-12/565a35d6-5151-42a8-a92e-a4590031ecc4.html
19.空中课堂开课的简报(精选20篇)2月1、2日,学校发布《贵州师大附中致高三学子及家长的一封信》、《贵州师大附中致高三老师的一封信》,就防控疫情及在线直播高三课程作相关要求及安排。信息中心通过网络直播管理平台,对高三教师、学生进行相关操作的技术培训,同时开展网络直播承载压力测试。 https://www.ruiwen.com/word/kongzhongketangkaikedejianbao.html
20.DDOS攻击平台,流量平台,在线攻击网页端,在线压力测试,DDOS压力深圳云验证信息技术有限公司-云验证--国内领先的网络安全系统解决方案和服务供应商,网络安全反黑技术的领导者.https://ymw8.com/