日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

分布式文件系统之Tfs是什么?

發(fā)布時(shí)間:2024/2/28 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式文件系统之Tfs是什么? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Tfs

概念:

TFS(Team Foundation Server)是一個(gè)高可擴(kuò)展、高可用、高性能、面向互聯(lián)網(wǎng)服務(wù)的分布式文件系統(tǒng),主要針對(duì)海量的非結(jié)構(gòu)化數(shù)據(jù),它構(gòu)筑在普通的Linux機(jī)器集群上,可為外部提供高可靠和高并發(fā)的存儲(chǔ)訪問(wèn)。

?

架構(gòu)設(shè)計(jì):

一個(gè)TFS集群由兩個(gè)NameServer節(jié)點(diǎn)(一主一備)和多個(gè)DataServer節(jié)點(diǎn)組成以block(通常為64M,可配置)為單位存儲(chǔ)和組織數(shù)據(jù)。這些服務(wù)程序都是作為一個(gè)用戶級(jí)的程序運(yùn)行在普通Linux機(jī)器上的。

NameServer主要管理維護(hù)Block和DataServer相關(guān)信息,包括DataServer加入,退出, 心跳信息, block和DataServer的對(duì)應(yīng)關(guān)系建立,解除。正常情況下,一個(gè)塊會(huì)在DataServer上存在, 主NameServer負(fù)責(zé)Block的創(chuàng)建,刪除,復(fù)制,均衡,整理, NameServer不負(fù)責(zé)實(shí)際數(shù)據(jù)的讀寫(xiě),實(shí)際數(shù)據(jù)的讀寫(xiě)由DataServer完成。

DataServer主要負(fù)責(zé)實(shí)際數(shù)據(jù)的存儲(chǔ)和讀寫(xiě)。
TFS會(huì)將多個(gè)小文件存儲(chǔ)在同一個(gè)block中,并為block建立索引,以便快速在block中定位文件;每個(gè)block會(huì)存儲(chǔ)多個(gè)副本到不同的機(jī)架上,以保證數(shù)據(jù)的高可靠性。

?

為了考慮容災(zāi),NameServer采用了HA結(jié)構(gòu),即兩臺(tái)機(jī)器互為熱備,同時(shí)運(yùn)行,一臺(tái)為主,一臺(tái)為備,主機(jī)綁定到對(duì)外vip,提供服務(wù);當(dāng)主機(jī)器宕機(jī)后,迅速將vip綁定至備份NameServer,將其切換為主機(jī),對(duì)外提供服務(wù)。

TFS采用了HA架構(gòu)和平滑擴(kuò)容,保證了整個(gè)文件系統(tǒng)的可用性和擴(kuò)展性。同時(shí)扁平化的數(shù)據(jù)組織結(jié)構(gòu),可將文件名映射到文件的物理地址,簡(jiǎn)化了文件的訪問(wèn)流程,一定程度上為T(mén)FS提供了良好的讀寫(xiě)性能。

?

部署方式:

HA結(jié)構(gòu)平滑擴(kuò)容

在TFS中,將大量的小文件(實(shí)際數(shù)據(jù)文件)合并成為一個(gè)大文件,這個(gè)大文件稱為塊(Block), 每個(gè)Block擁有在集群內(nèi)唯一的編號(hào)(Block Id), Block Id在NameServer在創(chuàng)建Block的時(shí)候分配, NameServer維護(hù)block與DataServer的關(guān)系。Block中的實(shí)際數(shù)據(jù)都存儲(chǔ)在DataServer上。而一臺(tái)DataServer服務(wù)器一般會(huì)有多個(gè)獨(dú)立DataServer進(jìn)程存在,每個(gè)進(jìn)程負(fù)責(zé)管理一個(gè)掛載點(diǎn),這個(gè)掛載點(diǎn)一般是一個(gè)獨(dú)立磁盤(pán)上的文件目錄,以降低單個(gè)磁盤(pán)損壞帶來(lái)的影響。

?

使用方法:

寫(xiě)操作:

TFS系統(tǒng)中,nameserver會(huì)保證一個(gè)文件有多個(gè)副本存儲(chǔ)于不同的dataserver上以保證冗余。當(dāng)由于dataserver服務(wù)器宕機(jī)或由于其他原因退出系統(tǒng)導(dǎo)致某些文件副本數(shù)量下降時(shí),nameserver將會(huì)調(diào)度新的dataserver節(jié)點(diǎn)存儲(chǔ)文件備份。同樣為了保證數(shù)據(jù)一致性,當(dāng)寫(xiě)入一個(gè)文件時(shí),只有所有參與的dataserver均寫(xiě)入成功時(shí),該操作才算成功。

  • 客戶端向nameserver發(fā)起寫(xiě)請(qǐng)求,nameserver返回一個(gè)dataserver列表
  • 客戶端首先向nameserver發(fā)起寫(xiě)請(qǐng)求,nameserver需要根據(jù)dataserver上的可寫(xiě)塊,容量和負(fù)載加權(quán)平均來(lái)選擇一個(gè)可寫(xiě)的block。并且在該block所在的多個(gè)dataserver中選擇一個(gè)作為寫(xiě)入的master,這個(gè)選擇過(guò)程也需要根據(jù)dataserver的負(fù)載以及當(dāng)前作為master的次數(shù)來(lái)計(jì)算,使得每個(gè)dataserver作為master的機(jī)會(huì)均等。master一段選定,除非master宕機(jī),不會(huì)更換,一旦master宕機(jī),需要在剩余的dataserver中選擇新的master。返回一個(gè)dataserver列表。

    ? ? ? 2.客戶端向master dataserver開(kāi)始數(shù)據(jù)寫(xiě)入操作

    master server將數(shù)據(jù)傳輸為其他的dataserver節(jié)點(diǎn),只有當(dāng)所有dataserver節(jié)點(diǎn)寫(xiě)入均成功時(shí),master server才會(huì)向nameserver和客戶端返回操作成功的信息。

    ?

    讀操作:

    1)獲得Block ID和File ID

    根據(jù)TFS文件名解析出Block ID和block中的File ID。

    2)獲取dataserver地址

    向nameserver發(fā)送查詢請(qǐng)求得到Block ID所在的dataserver地址。
    由于nameserver中維護(hù)了block和dataserver的對(duì)應(yīng)關(guān)系,所以nameserver能夠提供相應(yīng)的信息。
    Note: 由于TFS是把大量小文件放在一個(gè)block里面,
    所以TFS的文件復(fù)制是基于block的,而且復(fù)制出來(lái)的block的block id應(yīng)該是一致的。

    3)請(qǐng)求文件

    通過(guò)發(fā)送Block_ID、File_ID和offset為參數(shù)的讀請(qǐng)求到對(duì)應(yīng)的dataserver,得到文件內(nèi)容。
    dataserver會(huì)根據(jù)本地記錄的信息來(lái)得到File ID所在block的偏移量,從而讀取到正確的文件內(nèi)容。

    ?

    ?

    ?

    應(yīng)用場(chǎng)景:

    TFS為淘寶提供海量小文件存儲(chǔ),通常文件大小不超過(guò)1M,滿足了淘寶對(duì)小文件存儲(chǔ)的需求,被廣泛地應(yīng)用在淘寶各項(xiàng)應(yīng)用中。主要針對(duì)海量的非結(jié)構(gòu)化數(shù)據(jù),構(gòu)筑在普通的Linux機(jī)器集群上,可為外部提供高可靠和高并發(fā)的存儲(chǔ)訪問(wèn)。

    總結(jié)

    以上是生活随笔為你收集整理的分布式文件系统之Tfs是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。