淘宝TFS使用笔记(二):Q&A

问题 1、nameserver主无法启动,提示服务已存在

   1:  [[email protected] keepalived]# /usr/local/tfs/scripts/tfs start_ns   #启动ns出现错误,message和nameserver.log没有相关信息
   2:  /usr/local/tfs-2.2.16/bin/nameserver has been exist: pid: 3680
   3:   nameserver FAIL to up ... CHECK IT
   4:  [[email protected] keepalived]# ps -ef|grep 3680  #查看对应的pid,发现是keepalived?
   5:  root      3680  3678  0 14:22 ?        00:00:00 keepalived -D
   6:  root      3819  3052  0 14:23 pts/0    00:00:00 grep 3680
   7:  [[email protected] keepalived]# /etc/init.d/keepalived stop   #停止keepalived
   8:  Stopping keepalived:                                       [  OK  ]
   9:  [[email protected] keepalived]# /usr/local/tfs/scripts/tfs start_ns   #再启动ns,ok了
  10:   nameserver is up SUCCESSFULLY pid: 3961

问题2、nameserver无法启动,提示:error while loading shared libraries...

   1:  export LD_LIBRARY_PATH=/usr/local/lib   #找不到lib,添加一下share lib就行了
   2:  把这行加入/etc/profile,开机加载
   3:  echo "export LD_LIBRARY_PATH=/usr/local/lib" >> /etc/profile
   4:  20140819 现有tfs设备已改为加入到/etc/ld.so.conf
   5:      if [ ! `grep -l ‘/usr/local/lib‘ ‘/etc/ld.so.conf‘` ]; then echo "/usr/local/lib" >> /etc/ld.so.conf; /sbin/ldconfig; fi

问题3、使用tfstool写入文件失败,提示error: current nameserver only read...tfs open fail: get block info fail...等等

   1:  同时间查看nameserver的nameserver.log,发现一段:
   2:  owner role: slave, other side role: slave, owner status: initialize, other side status: uninitialize
   3:  主备ns都把自己置为slave角色,分别通过VIP/ns_master_IP/ns_slave_IP测试上传,得到同样的错误
   4:  可以确认:slave_nameserver只读、不可写
   5:  此问题为vip挂载方式问题,通过修改keepalived将vip挂载到eth1:0解决
   6:  配置内容为:keepalived.conf
   7:  virtual_ipaddress {
   8:      192.168.1.1/16 brd 192.168.1.255 dev eth1 label eth1:0
   9:  }

问题4、安装tfs时遇见错误:“session_util.cpp:2:23: error: uuid/uuid.h: No such file or directory”

   1:  搜了一下发现这个http://code.taobao.org/p/tfs/issue/601/,但没有有效的解决方法
   2:  重新过了一遍,发现是openssl-devel缺失,导致mysql相关包都没有安装上
   3:  yum install openssl-devel
   4:  并安装mysql的包后
   5:  再安装tfs,错误消失

问题5、安装tfs时遇见错误:“performance.cpp:25:20: error: curses.h: No such file or directory”

   1:  curses.h 这个文件搜索了一下,好像是图形库的文件?根据信息把缺失的东西安装一下
   2:  yum install ncurses ncurses-devel
   3:  再安装时,问题解决

问题6、启动dataserver时报错:/usr/local/tfs-2.2.16/bin/dataserver: error while loading shared libraries: libjemalloc.so.1: cannot open shared object file: No such file or directory

   1:  同问题2,将/usr/local/lib加入到/etc/ld.so/conf
   2:      if [ ! `grep -l ‘/usr/local/lib‘ ‘/etc/ld.so.conf‘` ]; then echo "/usr/local/lib" >> /etc/ld.so.conf; /sbin/ldconfig; fi

问题7、使用keepalived做nameserver主从,又使用了虚拟机,发现主从切换频繁

   1:  从日志:forcing a new MASTER election
   2:  主日志:Received higher prio advert
   3:  暂时不解,可能为双机通信问题导致
   4:  20140818新增:更换为物理机后运行了将近一周,日志中无切换记录了

===== 以下为TFS功能测试中的自问自答了~ =====

问题8、主备nameserver切换时上传报错,影响有多大?

   1:  搜了一下发现这个~http://code.taobao.org/p/tfs/issue/55118/
   2:  问题:nameserver能在主备节点切换,但是上传文件时报error: current nameserver only read, 192.168.41.173:53979, status: -5014
   3:  答(by淘宝人员):切换过程中,有部分请求看到的vip还是在master上,所以还是向master发了请求,就会出现上面的错误,可以忽略。
   4:  个人测试结论:
   5:  做了近10次主从间切换测试,完整的切换过程最长两次7sec,最短一次3sec
   6:  可以认为主从切换不超过10sec,一般都会在7sec以内

问题9、nameserver上是否储存影响tfs运行的关键数据?例如元数据,寻址数据or其它~

   1:  参考wiki与实际测试,nameserver上的数据在tfs系统中是无足轻重的:ns数据丢失不会造成ds读异常、ds数据丢失等
   2:  测试环境中的nameserver,删除tfs工作目录的磁盘数据,重启服务器(清理内存);nameserver再次启动后即可工作
   3:  抽查了30个文件均可以正确返回数据(使用命令:usr/local/tfs/bin/tfstool -s 192.168.1.100:8108 -i "cfi ${tfs_url}")
   4:  检查nameserver日志,服务启动后马上就收到了各block的健康报告

问题10、dataserver间的数据迁移是怎样的?

   1:  ds间的数据迁移为块(block)迁移,在master ns的nameserver.log中经常可以看到以下内容日志
   2:      send move command successful, block: 134093, : 192.168.1.21:10002===>: 192.168.1.22:10004   #block开始迁移记录
   3:      show result plan seqno: 91730, type: move ,status: finish, priority: normal , block_id: 415183, expired_time: 10211650,runer: 192.168.1.21:10004/192.168.1.23:10008/    #block迁移完毕记录
   4:  备份&冗余:
   5:      在某块磁盘或某台DS故障(下线后,无心跳后),ns日志就马上有了迁移block的指令;
   6:      在总量22G的磁盘中抽查了10个文件,17.56分人为kill该磁盘的ds服务,同一时间确认这10个文件仅剩1个副本
   7:      这期间开始恢复文件副本数,18:11分监测到抽查的所有10个文件都在另外地方复制了第二个副本
   8:  故障后又复原的情况:
   9:      现在抽查的10个文件已有2个副本,且故障盘中有一个副本,是否故障盘开启后有3个副本,这样tfs会如何处理?
  10:      故障盘开启后检查,未查询到3个副本
  11:  存储均衡:
  12:      某日下午下班发现大量的块迁移日志,同时期没有任何磁盘故障;查询每个ds服务存储量都在224~227G之间;
  13:      第二日上班查询日志发现块已经不再迁移,每个ds服务的使用量都在225.01~225.34G;
  14:      由此基本确认tfs的日常会做存储均衡
时间: 2024-10-29 19:11:48

淘宝TFS使用笔记(二):Q&A的相关文章

centos6.5上安装淘宝tfs系统

为了安装淘宝tfs文件系统,查了很多资料.若仅参考淘宝的官方文档,那么安装注定失败,因为在官方文档中很多依赖库并没有明确标出. 为了更方便的安装,我这里只写正确的安装过程,错误的解决就不详细描述了. 第一步:gcc降级 centos6.5上如果用yum安装gcc的话,默认是4.4.7版本.若以在gcc4.4.7的基础上安装tfs的话会出现许多莫名其妙的错,最后在网上 甚至搜索不到相关的错误信息.不过我们公司已经有大神安装成功,到时候看他能不能分享一下经验. yum install -y texi

facebook海量图片存储系统与淘宝TFS系统比较

本篇论文的原文可谓通俗易懂.行云流水.结构清晰.图文并茂……正如作者所说的——"替换Facebook的图片存储系统就像高速公路上给汽车换轮子,我们无法去追求完美的设计……我们花费了很多的注意力来保持它的简单",本篇论文也是一样,没有牵扯空洞的庞大架构.也没有晦涩零散的陈述,有的是对痛点的反思,对目标的分解,条理清晰,按部就班.既描述了宏观的整体流程,又推导了细节难点的技术突破过程.以至于译者都不需要在文中插入过多备注和解读了^_^.不过在文章末尾,译者以淘宝的解决方案作为对比,阐述了文

淘宝TFS分布式文件系统内部实现

TFS文件名的结构 TFS的文件名由块号和文件号通过某种对应关系组成,最大长度为18字节.文件名固定以T开始,第二字节为该集群的编号(可以在配置项中指定,取值范围 1~9).余下的字节由Block ID和File ID通过一定的编码方式得到.文件名由客户端程序进行编码和解码,它映射方式如下图: TFS客户程序在读文件的时候通过将文件名转换为BlockID和FileID信息,然后可以在!NameServer取得该块所在!DataServer信息(如果客户端有该Block与!DataServere的

【热门APP用户体验分析】购物类APP之王——淘宝安卓版(二)

在上一篇的文章中,简单的介绍了一下淘宝客户端的首页的导航栏,还有一些小的细节问题,这一篇,我们还是继续剖析淘宝客户端安卓版. 我们首先还是先放出淘宝的主界面 在这个界面中,最上方是一个广告栏,可以点击进入对应的活动界面.广告栏可以手动的滑动,而且滑动体验非常好,在使用其他软件的时候,会发生左右广告栏的滑动和上下的刷新滑动出现冲突的情况,表现出来就是界面一直在颤动,但是淘宝的广告栏做的非常好,只要在广告栏的区域滑动,触摸焦点就会被锁定,不会发生手势冲突的情况,淘宝的开发者应该是重写了控件的触摸事件

淘宝tfs集群实战详细图

tfs集群设计图

《淘宝技术这十年》读书笔记 (三). 创造技术TFS和Tair

前面两篇文章介绍了淘宝的发展历程和Java时代的变迁: <淘宝技术这十年>读书笔记 (一).淘宝网技术简介及来源 <淘宝技术这十年>读书笔记 (二).Java时代的脱胎换骨和坚若磐石 马云说过"创新不是为了与对手竞争,而是跟明天竞争",所以这篇文章讲述淘宝的创新技术TFS和Tair及创新的产品. 该篇文章不仅仅对在读大学生非常有所帮助,因为你能从文章中看到很多你需要学习的知识,不仅仅包括数据库.计算机网络.操作系统.数据结构等基础课程:还根据时代的技术变迁讲述了

《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源

我似乎是2007年初中看<赢在中国>的时候喜欢上马云的,当时对电脑都不是很了解,更别提阿里巴巴和淘宝网了.但当时还是被马云的几句点评深深地吸引,其中我印象最深的一句话就是"短暂的激情是不值钱的,只有长久的激情才是值钱的",以至于我在本科毕业德育答辩时用的题目就是这句话(德育答辩开题我用的题目也是马云的<If not now,when? If not me,who?>其含义是如果不是现在努力,什么时候努力呢?如果不是为了自己奋斗,又是为谁奋斗呢?).的确,想做成任

淘宝技术发展

转载 http://blog.csdn.net/kobejayandy/article/details/8685271 目录 一.引言 二.个人网站 三.Oracle/支付宝/旺旺 四.淘宝技术发展(Java时代:脱胎换骨) 五.淘宝技术发展(Java时代:坚若磐石) 六.淘宝技术发展(Java时代:创造技术-TFS) 七.淘宝技术发展(分布式时代:服务化) 作者:赵超 一.引言 光棍节的狂欢 “时间到,开抢!”坐在电脑前早已等待多时的小美一看时间已到 2011 年 11 月 11 日零时,便迫

淘宝整体架构

一应用无状态(淘宝session框架) 假如在session中保存了大量与客户端的状态信息,保存状态信息的server宕机时 通常通过集群解决,不仅有负载均衡,更重要的是要有失效恢复failover tomcat用集群节点广播复制,jboss用配对复制等session状态复制策略,但严重影响系统的伸缩性,不能通过增加更多的机器达到良好的水平伸缩 因为集群节点间session通信随着节点的增多而开销增大,因此要想做到应用本身的伸缩性,要保证应用无状态,这样集群中的各个节点来说都是相同的,使系统更好