• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Swift云存儲(chǔ)環(huán)境下基于I/O負(fù)載均衡的讀取策略

      2013-09-10 01:18:34孫雪濤
      關(guān)鍵詞:哈希硬盤一致性

      蔣 溢,孫雪濤,楊 川

      (1.重慶郵電大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,重慶400065;2.中國電信股份有限公司瀘州分公司,四川 瀘州646000)

      0 引 言

      云存儲(chǔ)通過集群技術(shù)、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等,將網(wǎng)絡(luò)中不同類型的存儲(chǔ)設(shè)備協(xié)同起來,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問服務(wù)。云存儲(chǔ)提出后,得到了眾多廠商的支持和關(guān)注。Amazon推出了EC2[1](彈性計(jì)算云)云存儲(chǔ)產(chǎn)品S3[2],旨在為用戶提供互聯(lián)網(wǎng)服務(wù)形式同時(shí)提供更強(qiáng)的存儲(chǔ)和計(jì)算功能。隨后微軟也已經(jīng)推出了提供網(wǎng)絡(luò)移動(dòng) 硬 盤 服 務(wù) 的 Windows Live SkyDrive[3]。Apache 根 據(jù)Google的 GFS[4]和 Bigtable[5]也 先 后 推 出 了 HDFS[6]和HBase[7],為云計(jì)算環(huán)境提供計(jì)算和存儲(chǔ)的支持。

      本文基于開源Openstack[8]的對(duì)象存儲(chǔ)環(huán)境,首先分析了Openstack的Swift[9]對(duì)象存儲(chǔ)架構(gòu),針對(duì)其對(duì)象存儲(chǔ)沒有元數(shù)據(jù)中心節(jié)點(diǎn)、系統(tǒng)數(shù)據(jù)讀寫通過哈希一致性算法[10]完成,并沒有充分利用對(duì)象存儲(chǔ)系統(tǒng)的備份機(jī)制來改善系統(tǒng)數(shù)據(jù)讀取速度的現(xiàn)狀,給出了一種能夠均衡存儲(chǔ)設(shè)備I/O負(fù)載的策略,并在文章最后給出了相關(guān)實(shí)驗(yàn)過程,實(shí)驗(yàn)結(jié)果驗(yàn)證了本文給出的策略的有效性。

      1 Swift對(duì)象存儲(chǔ)架構(gòu)

      1.1 swift簡介

      OpenStack Object Storage (Swift)是 OpenStack開 源云計(jì)算項(xiàng)目的子項(xiàng)目之一,被稱為對(duì)象存儲(chǔ)。Swift適用于永久類型的靜態(tài)數(shù)據(jù)的長期存儲(chǔ),尤其適合存儲(chǔ)虛擬機(jī)鏡像、圖片存儲(chǔ)、郵件存儲(chǔ)和存檔備份等類型的數(shù)據(jù)。

      1.2 Swift架構(gòu)概述

      Swift主要有4個(gè)組成部分:Proxy Server(代理服務(wù))、Storage Server (存儲(chǔ)服 務(wù))、Consistency Server (一致性服務(wù))、Ring(環(huán)狀結(jié)構(gòu))文件,結(jié)構(gòu)如圖1所示。

      圖1 Swift組件結(jié)構(gòu)

      其中,Proxy Server是提供Swift API的服務(wù)器進(jìn)程,負(fù)責(zé)Swift其余組件間的相互通信;Storage Server提供了磁盤設(shè)備上的存儲(chǔ)服務(wù);Consistency Servers是保持一致性的服務(wù)器,其目標(biāo)是查找并解決由數(shù)據(jù)損壞和硬件故障引起的不一致性;Ring文件是它整個(gè)Swift中最重要的組件,其主要作用是用于記錄存儲(chǔ)對(duì)象與物理位置間的映射關(guān)系,Ring使用域 (Zone)、設(shè)備 (Device)、分區(qū) (Partition)和副本 (Replica)來維護(hù)這些映射信息。

      2 Swift對(duì)象存儲(chǔ)文件讀取策略

      Swift中存儲(chǔ)對(duì)象通過3個(gè)邏輯層次來實(shí)現(xiàn)的,分別是Account(賬戶)、Container(容器)、Object(對(duì)象)。一個(gè)Account包含多個(gè)Container,而一個(gè)Container又包含多個(gè)Object。所有每個(gè)對(duì)象的邏輯路徑都是/Account name/Container name/Object name。Swift中對(duì)對(duì)象 (Object)的讀寫是通過Ring文件來完成的。Ring文件的作用就是將上面的對(duì)象邏輯路徑和實(shí)際對(duì)象存儲(chǔ)的物理位置的映射。

      2.1 哈希一致性算法

      哈希一致性算法是1997年由麻省理工學(xué)院提出的一種分布式哈希 (DHT)實(shí)現(xiàn)算法,其基本原理是將機(jī)器節(jié)點(diǎn)和key值都按照一樣的hash算法映射到一個(gè)0~2^32的圓環(huán)上。當(dāng)有一個(gè)寫/讀的請(qǐng)求到來時(shí),計(jì)算Key值k對(duì)應(yīng)的哈希值Hash(k),如果該值正好對(duì)應(yīng)之前某個(gè)機(jī)器節(jié)點(diǎn)的Hash值,則直接寫/讀該機(jī)器節(jié)點(diǎn),如果沒有對(duì)應(yīng)的機(jī)器節(jié)點(diǎn),則順時(shí)針查找下一個(gè)節(jié)點(diǎn),進(jìn)行寫/讀,如果超過2^32還沒找到對(duì)應(yīng)節(jié)點(diǎn),則從0開始查找 (因?yàn)槭黔h(huán)狀結(jié)構(gòu))。如圖2所示。

      在Swift中為了系統(tǒng)的擴(kuò)展性在哈希環(huán)上對(duì)應(yīng)的不再是真實(shí)的硬盤或者分區(qū),而是采用了虛擬節(jié)點(diǎn),然后再由虛擬節(jié)點(diǎn)對(duì)應(yīng)到真實(shí)的節(jié)點(diǎn) (多對(duì)一)。這里的虛擬節(jié)點(diǎn)即是上文中提到的Ring中的Partition,Device則對(duì)應(yīng)真實(shí)的節(jié)點(diǎn)。

      圖2 哈希一致性算法

      2.2 Swift中基于哈希一致性算法的讀取策略

      首先,當(dāng)系統(tǒng)接受到客戶發(fā)來的請(qǐng)求,先進(jìn)行用戶身份的驗(yàn)證,當(dāng)驗(yàn)證成功后,再將請(qǐng)求傳給Proxy Server。其次,Proxy Server通過Ring來將對(duì)象的邏輯路徑通過哈希一致性算法進(jìn)行處理,將生成的哈希字符串的前一部分與Ring文件中的partition列表中的partition哈希值進(jìn)行對(duì)比,如果值相等,則該對(duì)象在這個(gè)partition中。再通過Devices表讀取該P(yáng)artition所存在的物理位置,最后讀取數(shù)據(jù)對(duì)象本身,并將讀取數(shù)據(jù)通過Proxy Server返回給用戶。其讀取流程如圖3所示。

      圖3 讀策略流程

      由此可見,文件讀取的時(shí)候非常容易出現(xiàn)磁盤利用率不平衡的情況,如果某一個(gè)磁盤I/O請(qǐng)求隊(duì)列中有大量請(qǐng)求,而受硬盤串行工作機(jī)制的限制,讀寫文件的速度會(huì)大幅降低,這是由于磁盤臂會(huì)頻繁地尋道。并且當(dāng)并發(fā)請(qǐng)求量越大,讀寫的速度會(huì)越低。例如IDE 7200轉(zhuǎn)的硬盤讀寫速度一般能達(dá)到30M/S左右,但是當(dāng)同時(shí)讀取兩個(gè)文件時(shí),硬盤讀寫速度只有10M/s左右。

      由于讀取負(fù)載不均衡問題極大地限制了系統(tǒng)整體I/O性能,所以設(shè)法均衡各個(gè)磁盤的I/O請(qǐng)求,實(shí)現(xiàn)并行的讀取成為必要。

      3 基于I/O負(fù)載均衡的讀取策略

      3.1 策略分析

      由于Swift為了數(shù)據(jù)的存儲(chǔ)安全每個(gè)partition都有2個(gè)副本,也就是說一個(gè)系統(tǒng)中將有3份同樣的數(shù)據(jù)存在。這兩個(gè)副本的作用是用來做數(shù)據(jù)安全備份的,一旦當(dāng)swift數(shù)據(jù)損壞時(shí),可以用這兩個(gè)副本進(jìn)行恢復(fù)。但是當(dāng)進(jìn)行文件讀取的時(shí)候,這兩個(gè)備份文件一般情況下去沒有起到作用。Swift還有一個(gè)特性,那就是為了數(shù)據(jù)的安全,這3份數(shù)據(jù)每兩份都不能存在于系統(tǒng)的同一個(gè)Zone中。(zone可以是一個(gè)硬盤,一個(gè)服務(wù)器,一個(gè)機(jī)架,一個(gè)交換機(jī),甚至是一個(gè)數(shù)據(jù)中心)。所以可以得出不同的Zone肯定不在同一塊硬盤上,如果能利用3個(gè)備份在不同硬盤上的特點(diǎn),使讀取的請(qǐng)求更加平均的分布在不同的硬盤上,將提高swift的讀取效率。本文仍然基于原有的哈希一致性算法實(shí)現(xiàn)數(shù)據(jù)的讀寫,采用添加加權(quán)法來使讀取負(fù)載更加均衡。

      本文策略的核心在于使文件讀取的請(qǐng)求盡可能平均地分布在各個(gè)硬盤上,并為每個(gè)存儲(chǔ)的partition維護(hù)一個(gè)權(quán)值,文件讀取的時(shí)候總是選擇權(quán)值最小的硬盤中的那個(gè)partition去讀取。

      策略實(shí)現(xiàn)通過在Ring的Devices列表中添加相應(yīng)字段,并記錄每一個(gè)Device當(dāng)前的讀寫請(qǐng)求量。當(dāng)proxy收到客戶已驗(yàn)證過的請(qǐng)求后,先在Ring中通過哈希一致性算法找到存儲(chǔ)該對(duì)象的partition。然后再通過Ring查找該partition的備份,根據(jù)這三份數(shù)據(jù)在Devices列表中找到設(shè)備表中對(duì)應(yīng)的設(shè)備。最后,根據(jù)存儲(chǔ)設(shè)備的負(fù)載按照一定的方法計(jì)算權(quán)值,并按權(quán)值進(jìn)行排序,實(shí)現(xiàn)負(fù)載小的device中的partition優(yōu)先被選擇。如果3個(gè)備份的負(fù)載量相同那么就選取列表中的第一個(gè),當(dāng)選擇完成后,更新List of Devices中的負(fù)載權(quán)值。

      基于I/O負(fù)載均衡的讀取策略理論分析如下:

      設(shè)系統(tǒng)的平均讀取速率為P,Rs為系統(tǒng)讀取請(qǐng)求的數(shù)量,Ci為某硬盤的I/O讀取極限速率,Rci為某塊硬盤上的請(qǐng)求數(shù)量,θci為該塊硬盤I/O極限速率和多個(gè)并行讀取請(qǐng)求時(shí)的速率之比

      假如我們所有使用的硬盤都是同樣的,在Ci是相同的。則該式可簡化為

      因?yàn)橛脖P的串行工作機(jī)制的限制,當(dāng)我們并行讀寫多個(gè)文件時(shí),速度比串行讀寫多個(gè)文件還要慢,多文件并行操作時(shí),時(shí)間都花在磁頭擺動(dòng)上了,所以θci隨著Rci的增加會(huì)迅速下降。由上面的公式中可以得出,當(dāng)Rci之間的值越接近,則P的值越大。

      3.2 策略實(shí)現(xiàn)

      對(duì)3.1描述的策略采用如圖4所示的實(shí)現(xiàn)流程:

      首先當(dāng)系統(tǒng)接收到用戶的讀請(qǐng)求后。根據(jù)邏輯路徑的哈希值在列表中找到對(duì)應(yīng)的partition,然后在通過partition,找到該partition的備份replica。接著從一個(gè)partition和兩個(gè)replica所對(duì)應(yīng)的Device中找到負(fù)載最小的一個(gè)進(jìn)行讀操作,并將對(duì)應(yīng)的Device的Load值加1。讀操作執(zhí)行完畢之后將該Device的Load值在減1。

      圖4 策略流程

      4 仿真實(shí)驗(yàn)

      4.1 實(shí)驗(yàn)環(huán)境及方法

      實(shí)驗(yàn)采用Unix/Linux下提供的iostat來觀察物理磁盤的活動(dòng)時(shí)間及其平均傳輸速度,并將結(jié)果寫入到監(jiān)測文件中。選擇1G字節(jié)大小的文件進(jìn)行讀取實(shí)驗(yàn),原因在于大文件有利于查看測試數(shù)據(jù)并進(jìn)行比對(duì),便于對(duì)平均硬盤I/O數(shù)據(jù)進(jìn)行分析。

      實(shí)驗(yàn)分為兩組。第一組是采用原有策略進(jìn)行讀取實(shí)驗(yàn),第二組是采用基于I/O負(fù)載均衡的讀取策略進(jìn)行實(shí)驗(yàn)。兩組實(shí)驗(yàn)中都分別對(duì),1個(gè)、10個(gè)、50個(gè)、100個(gè)、500個(gè)、1000個(gè)、2000個(gè)文件同時(shí)讀取進(jìn)行測試。

      測試環(huán)境的物理架構(gòu)圖如圖5所示,Auth Node作為身份驗(yàn)證主機(jī)Proxy Node作為接收和轉(zhuǎn)發(fā)客戶的讀寫請(qǐng)求,3個(gè)Storage Node作為3個(gè)Zone。

      系統(tǒng)配置見表1。

      圖5 實(shí)驗(yàn)物理架構(gòu)

      表1 系統(tǒng)配置

      4.2 實(shí)驗(yàn)結(jié)果

      通過iostat監(jiān)測原有策略及本文基于I/O負(fù)載均衡策略的數(shù)據(jù)讀取速率,見表2。

      表2 改進(jìn)前策略數(shù)據(jù)平均讀取速率

      通過iostat監(jiān)測更改算法后的讀取速率數(shù)據(jù)見表3。

      將監(jiān)測到的數(shù)據(jù)在兩種策略下對(duì)比,并繪制成圖表如圖6所示。

      表3 改進(jìn)后策略數(shù)據(jù)平均讀取速率

      圖6 數(shù)據(jù)平均速率對(duì)比

      4.3 結(jié)果分析

      由圖6可見,對(duì)單個(gè)文件進(jìn)行讀取時(shí),不存在并行讀取多文件,所以兩種算法速率一樣,且都接近硬盤的極限I/O速率。當(dāng)文件的讀取任務(wù)請(qǐng)求為10時(shí)。此時(shí)原有策略不會(huì)將讀取請(qǐng)求負(fù)載均衡到各個(gè)存儲(chǔ)設(shè)備上,所以整體讀取效率比較基于I/O負(fù)載均衡的讀取策略低。

      隨后的兩組數(shù)據(jù)隨著讀取文件的數(shù)量逐漸上升,基于I/O負(fù)載均衡的讀取策略由于更好地均衡了讀取請(qǐng)求,所以速度下降的較慢。

      實(shí)驗(yàn)結(jié)果表明,原有策略隨著讀取請(qǐng)求負(fù)載的上升,讀取請(qǐng)求分配不均的現(xiàn)象會(huì)變得比較明顯,從而導(dǎo)致系統(tǒng)整體吞吐量下降。而改進(jìn)后的算法,由于更好地分散了負(fù)載,所以能夠獲取更好的系統(tǒng)吞吐量。

      5 結(jié)束語

      云存儲(chǔ)集群具有即時(shí)并行讀取量大的特點(diǎn),因此如何能將這些請(qǐng)求更加合理地平均的分配到各個(gè)硬盤上,對(duì)于提高整個(gè)系統(tǒng)的吞吐量尤為重要。本文主要通過改進(jìn)數(shù)據(jù)讀取策略,均衡系統(tǒng)讀取負(fù)載,將讀取請(qǐng)求平均分配到各個(gè)存儲(chǔ)設(shè)備上,使得各個(gè)設(shè)備之間的I/O負(fù)載更加均衡,實(shí)現(xiàn)了并行讀取,提高了存儲(chǔ)平臺(tái)的整體讀取性能,文章通過實(shí)驗(yàn)驗(yàn)證了本文策略的有效性。

      [1]Amazon Elastic Compute Cloud(Amazon EC2)[EB/OL].[2012-11-18].http://aws.amazon.com/cn/ec2/.

      [2]Amazon Simple Storage Service (Amazon S3)[EB/OL].[2012-11-18].http://aws.amazon.com/cn/s3/.

      [3]MicrosoftSkyDrive [EB/OL].[2012-11-18].http://zh.wikipedia.org/zh-cn/Microsoft_SkyDrive.

      [4]Ghemawat S,Gobioff H,Leung S T.The Google file system[J].ACM SIGOPS Operating Systems Review.ACM,2003,37 (5):29-43.

      [5]Hall K B,Gilpin S,Mann G.MapReduce/Bigtable for distributed optimization [C]//NIPS LCCC Workshop,2010.

      [6]Tom Wbite.Hadoop the definitive guide [M].Tsang Tairan,ZHOU Aoying,transl.Beijing:Tsinghua University Press,2010 (in Chinese).[Tom Wbite.Hadoop權(quán)威指南 [M].曾大冉,周傲英,譯.北京:清華大學(xué)出版社,2010.]

      [7]Hbase Development Team.HBase:Bigtable-like structured storage for Hadoop HDFS [EB/OL].[2012-11-18].http://wiki.a-pache.orglhadoop/Hbase.

      [8]Open source software for building private and public clouds[EB/OL].[2012-11-18]. http://www.openstack.org/http://www.chinacloud.cn/show.aspx?id=766&cid=30.

      [9]Swift1.7.6-dev documentation [EB/OL]. [2012-11-18].http://docs.openstack.org/developer/swift/.

      [10]Lewin D.Consistent hashing and random trees: Algorithms for caching in distributed networks [D].Cambridge, Massachusetts: Massachusetts Institute of Technology,Department of Electrical Engineering and Computer Science,1998.

      猜你喜歡
      哈希硬盤一致性
      關(guān)注減污降碳協(xié)同的一致性和整體性
      公民與法治(2022年5期)2022-07-29 00:47:28
      注重教、學(xué)、評(píng)一致性 提高一輪復(fù)習(xí)效率
      IOl-master 700和Pentacam測量Kappa角一致性分析
      HiFi級(jí)4K硬盤播放機(jī) 億格瑞A15
      Egreat(億格瑞)A10二代 4K硬盤播放機(jī)
      基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
      我區(qū)電視臺(tái)對(duì)硬盤播出系統(tǒng)的應(yīng)用
      基于事件觸發(fā)的多智能體輸入飽和一致性控制
      基于維度分解的哈希多維快速流分類算法
      基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
      偏关县| 方城县| 冷水江市| 华安县| 万安县| 江永县| 淮南市| 报价| 元谋县| 武陟县| 平山县| 义乌市| 黑龙江省| 平顺县| 威宁| 舟山市| 富裕县| 澄城县| 嵊泗县| 高淳县| 旅游| 福清市| 辛集市| 景洪市| 山阳县| 福海县| 丽水市| 松潘县| 南郑县| 祁连县| 诸城市| 策勒县| 乌拉特后旗| 钦州市| 汉源县| 三穗县| 阳新县| 年辖:市辖区| 子洲县| 东方市| 东乡县|