Posts tagged TFS

TFS运维平台改造

1

TFS负责运维的同学在工作过程中,积累了各种运维脚本,全部使用shell编写,用于完成TFS机器的上下线、坏盘下线、集群同步、迁移等功能,这些脚本构成现在的运维平台;但由于运维同学的不断更替,新同学在使用前辈们留下来的运维脚本过程中经常踩坑,严重影响运维工作效率。

以下列举了TFS运维过程中,出过的一些问题: (更多…)

TFS Erasure code实现方案

0

TFS发展至今,集群部署总容量已超过50PB,机器数量约2700台。TFS在阿里内部主流部署方式是主集群内数据块2个副本,每个主集群配置两个备集群,分别在同城和异地机房,实际上每份数据6个副本,存储成本非常高,为了降低TFS存储成本,我们将Erasre code引入到TFS系统,本文将详细介绍TFS应用Erasure code的技术方案。

异步编码,对用户透明

目前已经应用Erasure code的分布式文件系统里,HDFS、Windows Azure等系统采用异步编码的方式,写流程和数据编码流程完全解耦;而GPFS、pangu(阿里云的分布式文件系统)等系统则是采用实时编码的方式,在数据写入时进行编码。
(更多…)

TFS的数据服务化之路

1

很多人可能都只知道,TFS需要配置一个特定的客户端才能访问。其实,如今通过一系列web_service的接口就可以轻松存储、获取TFS里面的数据,TFS在去年就已经实现了数据服务化。今天我们就来说说TFS的数据服务化之路。

在2012年以前,TFS有一个java和c++的客户端。最早只支持小文件的时候,TFS的客户端只需要在读写流程中和NameServer以及DataServer交互即可。后来在客户端实现了文件去重和大文件的支持。随着应用的增长、数据规模扩大以及跨机房容灾的需要,我们引入了RcServer来对应用、集群进行管理,并在客户端实现了相应逻辑,以达到集群选择、容灾功能都对应用透明的目的,大大简化了应用的配置,降低了应用使用TFS的成本。再后来,我们在原生文件的基础上开发了新的功能,允许应用使用自己定义的文件名来进行访问,拓展了TFS的用法。至此,客户端与后端Server的交互对象又增加了两个,逻辑复杂化的趋势愈演愈烈,需要bugfix的频率也越来越高。而每次新功能或bugfix都需要将新的客户端推到所有使用TFS的应用,这个过程异常的痛苦。不知不觉间,客户端已成为限制TFS前进的一个绊脚石,客户端改革势在必行。
(更多…)

TFS新版本特性介绍

0

TFS新版本(tfs-2.6)的开发主要因为要将erasure code应用到TFS中,以节省存储成本。erasure code的引入,需要TFS在数据存储结构上做改变,这对于存储系统来说是非常大的改变,借着这个机会,也对TFS做了很多的优化工作,本文主要介绍2.6.0版本TFS的一些新特性。

block id升级至64位

TFS采用每个数据块(block)由一个uint32_t类型的blockid来标识,每个block 72MB,理论上单集群能支持约300PB的存储空间,但实际上并不是每个blockid都能被利用上;另外,TFS在应用erasure code后,会引入一种新的校验块(parity block);系统设计上是直接通过blockid的值就能判断出block的类型(最高位是否为0来区分),这样就使得数据块可用的blockid范围又缩小了一半。

为了有效解决可用blockid数量不足的问题,将blockid从uint32_t升级至uint64_t;由于TFS生成的文件名里编码了blockid,升级后,生成的新文件名将比原来更长,从原来的18字节扩张到27字节。

(更多…)

TFS正式开源

7

TFS,淘宝网底层分布式文件系统,已经正式开源上线了,大家可以到TFS开源主页面访问,欢迎大家下载、拍砖

TFS简介

61

TFS是什么

TFS,Taobao File System,淘宝内部使用的分布式文件系统,主要针对海量小文件的随机读写访问性能做了特殊优化,承载着淘宝主站所有图片、商品描述等数据的存储。

TFS有什么特点

  1. 完全扁平化的数据组织结构,抛弃了传统文件系统的目录结构。
  2. (更多…)

关于mysql hang导致nameserver宕机的分析

4

事发当晚:
过程:
mysql 机器告警,说主机down.
nameserver所有mysql线程停止动作,mysql线程池消息队列暴涨。
nameserver内存暴涨。
core.

(更多…)

mod_zoom 在port到64bit机器过程中的bug fix

1

在把mod_zoom模块移植到64bit机器上的时候,发现一旦涉及到mod_zoom的filter功能,马上进程会core dump; 而在32bit机器上不存在此问题;
用gdb跟踪发现core的位置在如下代码;
(更多…)

一次完整的TFS写文件流程 for TFS1.3

7

我们都知道,TFS的写文件流程是由TFS Client来发起的,所以我们就从TFS Client出发。

首先来讲在Tfs Client都发生了什么事情?

(更多…)

mod_desc模块分配了大量的内存的排查过程

1

发现image机器经常load高, 导致进不去

1) 给每台机器装一个系统保护模块, 当load高先把流量切掉, 并且报警.

过了一会.收到报警,到机器上看, 居然发现有一个进程用3.5G的内存

2) 怀疑有size有问题,一次性分配了malloc大内存.

(更多…)

Go to Top