国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種無中心的云存儲架構(gòu)分析

2012-08-10 03:40:32余秦勇
通信技術(shù) 2012年8期
關(guān)鍵詞:存儲系統(tǒng)哈希客戶端

余秦勇,陳 林,童 斌

(成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司,四川 成都 610041)

0 引言

云存儲是從云計算概念上衍生、發(fā)展出來的一個概念,指利用集群、分布式文件系統(tǒng)等技術(shù),將網(wǎng)絡(luò)中大量各種不同類型的存儲設(shè)備集合起來協(xié)同工作,共同對外提供數(shù)據(jù)存儲和業(yè)務(wù)訪問功能的一個系統(tǒng)。云存儲作為云計算系統(tǒng)的基礎(chǔ)和支撐,專注于解決云計算中海量數(shù)據(jù)的存儲挑戰(zhàn),所以云存儲是一個以數(shù)據(jù)存儲和管理為核心的云計算系統(tǒng)。與傳統(tǒng)的存儲系統(tǒng)相比,云存儲系統(tǒng)具有以下優(yōu)點。

高可靠性。云存儲使用了數(shù)據(jù)多副本容錯、存儲節(jié)點異構(gòu)可互換等措施來提升系統(tǒng)的可靠性,因此云存儲能夠容忍節(jié)點的故障,甚至有很大一部節(jié)點失效也不會影響系統(tǒng)的正常運行,較好的解決了硬件故障的影響,提高了可靠性。

高擴展性。云存儲技術(shù)通過將不同廠商、型號、位置的存儲設(shè)備抽象成一個虛擬的存儲資源池,資源池的規(guī)??梢詣討B(tài)伸縮,滿足應(yīng)用和用戶規(guī)模增長的需要,使之具有高可擴展性。高擴展的特性使云存儲能夠適用于海量數(shù)據(jù)存儲。

高可用性。傳統(tǒng)的存儲系統(tǒng)在做定期性的維護和升級時,通常會導(dǎo)致服務(wù)的臨時中斷。而云存儲通過虛擬化資源池技術(shù),能實現(xiàn)系統(tǒng)不停機的情況下數(shù)據(jù)動態(tài)遷移,因此使用云存儲不會導(dǎo)致業(yè)務(wù)的中止,具有高可用性。

低成本。云存儲對大量價格低廉的同構(gòu)或者異構(gòu)存儲設(shè)備進行了有效整合,降低了系統(tǒng)的構(gòu)建成本;云存儲的通用性使資源的利用率大幅提升,緩解了成本與資源利用率之間的矛盾,降低了運行成本。

綜上所述,云存儲除了可以節(jié)省整體的硬件成本外,還具備良好的可擴展性、對用戶的透明性、按需分配的靈活性和負載的均衡性等特點,云存儲系統(tǒng)為海量數(shù)據(jù)的存儲提供了有效的解決方案[1-2]。

1 典型云存儲架構(gòu)介紹

云存儲作為一個復(fù)雜的綜合系統(tǒng),其核心在于內(nèi)置的分布式文件系統(tǒng),它是云存儲的基礎(chǔ)。所謂分布式文件系統(tǒng)是指文件系統(tǒng)管理的物理存儲資源不局限在本地節(jié)點上,而是通過網(wǎng)絡(luò)與節(jié)點相連,然后把整個分布式存儲資源以統(tǒng)一的視圖呈現(xiàn)給用戶。目前已有大量的分布式文件系統(tǒng),有些是商業(yè)化產(chǎn)品,有些是開源項目,每種分布式文件系統(tǒng)各有其特點和適用場景,以是否存在元數(shù)據(jù)節(jié)點可以將其分為兩類:基于中心的分布式文件系統(tǒng)和無中心的分布式文件系統(tǒng),它們決定了云存儲系統(tǒng)的架構(gòu)。其中GFS(Google File System)是前一種類型的代表,HDFS是其開源實現(xiàn);Dynamo是Amazon設(shè)計開發(fā)的存儲基礎(chǔ)架構(gòu) ,是無中心云存儲架構(gòu)的典型,下面分別對其做概要介紹。

1.1 GFS架構(gòu)介紹

GFS是Google公司為了滿足迅速增長的數(shù)據(jù)處理要求,設(shè)計并實現(xiàn)的分布式文件系統(tǒng),。GFS分布式文件系統(tǒng)主要有 3個組件:Master、Chunkserver和GFS Client[3],如圖1所示。

圖1 GFS體系結(jié)構(gòu)

Master管理所有的文件系統(tǒng)元數(shù)據(jù)。這些元數(shù)據(jù)包括名字空間、訪問控制信息、文件和Chunk的映射信息、以及當(dāng)前Chunk的位置等信息。

Chunkserver負責(zé)具體數(shù)據(jù)的存儲,GFS存儲的文件都被分割成固定大小的Chunk。在Chunk創(chuàng)建的時候,Master節(jié)點會給每個Chunk分配一個不變的、唯一的64位的Chunk標(biāo)識。Chunk節(jié)點把Chunk以文件的形式保存在本地硬盤上,并且根據(jù)指定的Chunk標(biāo)識和字節(jié)范圍來讀寫塊數(shù)據(jù)。出于可靠性的考慮,每個塊都會復(fù)制到多個塊服務(wù)器上。

GFS的客戶端以代碼庫的形式被鏈接到客戶程序里。客戶端代碼提供了一套類似傳統(tǒng)文件系統(tǒng)的API接口函數(shù),支持常用的文件操作,如創(chuàng)建新文件、刪除文件、打開文件、關(guān)閉文件、讀和寫文件。

為了提高系統(tǒng)效率,GFS采取了把數(shù)據(jù)流和控制流分開的運行機制。Master和 Client及Chunkserver節(jié)點的通信只交互控制流(元數(shù)據(jù)信息),所有的數(shù)據(jù)操作都是由客戶端直接和 Chunk節(jié)點進行交互的。

GFS文件系統(tǒng)具有幾個特點:①系統(tǒng)定位于存儲大量的大文件,系統(tǒng)也支持小文件,但未針對小文件做專門的優(yōu)化;②大部分文件的更新是通過添加新數(shù)據(jù)完成的,而不是改變己存在的數(shù)據(jù),一旦寫完,文件就只可讀;③系統(tǒng)工作主要由兩種讀操作構(gòu)成。對大量數(shù)據(jù)的流方式的讀操作和對少量數(shù)據(jù)的隨機方式的讀操作。

由以上分析可以看出,GFS并不是一個通用的云存儲系統(tǒng),它更適合于大型的搜索業(yè)務(wù),因為GFS的設(shè)計考慮了許多具體搜索業(yè)務(wù)的特性,如文件的大小、讀寫頻率等。GFS采用中心節(jié)點來管理整個文件系統(tǒng)的元數(shù)據(jù),這可以大大簡化設(shè)計,從而降低實現(xiàn)難度。但是,這樣的結(jié)構(gòu)也帶來了單點失效和性能瓶頸的問題,而這也將在一定程度上影響系統(tǒng)的擴展性。

1.2 Dynamo架構(gòu)介紹

Dynamo是Amazon設(shè)計、開發(fā)的一種基礎(chǔ)存儲架構(gòu)。由于業(yè)務(wù)的快速發(fā)展,傳統(tǒng)的存儲系統(tǒng)無法滿足電子商務(wù)交易過程中產(chǎn)生的海量、半結(jié)構(gòu)化數(shù)據(jù)的需求,因此 Amazon設(shè)計開發(fā)了自己的存儲系統(tǒng)Dynamo。Dynamo在設(shè)計之初被定位為一個高可靠、高可用且具有良好容錯性的系統(tǒng),它以簡單的鍵/值方式存儲數(shù)據(jù),不支持復(fù)雜的查詢,Dynamo中存儲的是數(shù)據(jù)的原始形式,不識別任何數(shù)據(jù)結(jié)構(gòu),這使得它幾乎可以處理所有的數(shù)據(jù)類型。

相比傳統(tǒng)的集中式存儲系統(tǒng),Dynamo是一個完全分布式的、無中心節(jié)點的存儲系統(tǒng)。如何在節(jié)點上均勻分布數(shù)據(jù)是非常關(guān)鍵的問題,Dynamo使用改進后的一致性哈希算法解決這個問題,如圖2所示。一致性哈希算法分兩步進行,首先計算出設(shè)備節(jié)點哈希值,將設(shè)備配置到環(huán)上的一個點(每個點代表一個哈希值);然后計算數(shù)據(jù)的哈希值,按順時針方向?qū)⑵溆成涞江h(huán)上距其最近的節(jié)點;當(dāng)新增節(jié)點時,按照上述規(guī)則,調(diào)整相關(guān)數(shù)據(jù)到新的節(jié)點上。刪除節(jié)點和添加節(jié)點過程相反[4]。

Dynamo通過一致性哈希算法切分數(shù)據(jù),分放在不同的節(jié)點上。環(huán)上每個節(jié)點只需要處理落在它和它的前驅(qū)節(jié)點之間的數(shù)據(jù),這樣當(dāng)有新的節(jié)點加入或者撤出時系統(tǒng)的震蕩較小。一致性哈希是一種隨機函數(shù),在節(jié)點量較少的情況下很有可能造成節(jié)點數(shù)據(jù)分布的不均勻,并且一致性哈希算法在選擇節(jié)點位置時并沒有考慮環(huán)上不同節(jié)點的性能差異。為了解決這個問題,亞馬遜在Dynamo中引入了節(jié)點虛擬化的概念。每個虛擬節(jié)點屬于一個實際的物理節(jié)點。一個物理節(jié)點根據(jù)性能的差異可能擁有一個或多個虛擬節(jié)點。每個虛擬節(jié)點能力基本相當(dāng),并隨機分布在哈希空間中。存儲時,數(shù)據(jù)按照哈希值映射到某個虛擬節(jié)點負責(zé)的區(qū)域,然后被存儲在該虛擬節(jié)點所對應(yīng)的物理節(jié)點。分布在一致性環(huán)上的虛擬節(jié)點有效的解決了性能不均問題,它將放在環(huán)上作為一個節(jié)點的視為一組機器,這一組機器是通過同步機制保證數(shù)據(jù)一致的。

圖2 一致性哈希算法

2 Gluster架構(gòu)分析

Gluster是一個開源的無元數(shù)據(jù)節(jié)點的分布式文件系統(tǒng),由于其無中心的特點,因此具有強大的橫向擴展能力,通過擴展能夠支持數(shù) PB存儲容量。Gluster通過TCP/IP或InfiniBand RDMA網(wǎng)絡(luò)將物理分布的存儲資源聚集在一起,使用單一全局命名空間來管理數(shù)據(jù)。Gluster基于可堆疊的用戶空間設(shè)計,可為各種不同的數(shù)據(jù)負載提供優(yōu)異的性能[5]。

2.1 總體架構(gòu)

Gluster主要由存儲服務(wù)器(Brick Server)、客戶端以及存儲網(wǎng)關(guān)組成,如圖3所示。由圖3可以看出,Gluster架構(gòu)中沒有元數(shù)據(jù)節(jié)點,這是其最大的設(shè)計特點,對于提升整個系統(tǒng)的性能、可靠性和穩(wěn)定性都有著決定性的意義??蛻舳丝赏ㄟ^原生Gluster協(xié)議訪問數(shù)據(jù),對于不支持運行Gluster客戶端(如Windows系統(tǒng))的節(jié)點可采用NFS/CIFS標(biāo)準(zhǔn)協(xié)議通過存儲網(wǎng)關(guān)訪問存儲系統(tǒng)[6]。

圖3 Gluster架構(gòu)

存儲服務(wù)器主要提供基本的數(shù)據(jù)存儲功能,數(shù)據(jù)通過彈性哈希算法分布在不同的存儲服務(wù)器上。存儲服務(wù)器運行Gluster的后臺服務(wù)進程,負責(zé)處理來自客戶端的數(shù)據(jù)服務(wù)請求。數(shù)據(jù)以原始格式直接存儲在服務(wù)器的本地文件系統(tǒng)上,如EXT3、EXT4、XFS、ZFS等,運行服務(wù)時指定數(shù)據(jù)存儲路徑。

在客戶端方面,由于沒有元數(shù)據(jù)服務(wù)器,客戶端需要實現(xiàn)數(shù)據(jù)卷管理、I/O調(diào)度、文件定位、數(shù)據(jù)緩存等功能。客戶端利用FUSE(File system in User Space)模塊將 Gluster掛載到本地文件系統(tǒng)之上,以POSIX兼容的方式來訪問系統(tǒng)數(shù)據(jù)。Gluster客戶端的負載相對傳統(tǒng)分布式文件系統(tǒng)要高,包括CPU占用率和內(nèi)存占用。

Gluster存儲網(wǎng)關(guān)提供彈性卷管理和 NFS/CIFS訪問代理功能。卷管理器負責(zé)邏輯卷的創(chuàng)建、刪除、容量擴展與縮減、容量平滑等功能,并負責(zé)向客戶端提供邏輯卷信息及主動更新通知功能等。對于Windows客戶端或沒有安裝Gluster的客戶端,需要通過 NFS/CIFS代理網(wǎng)關(guān)來訪問,這時網(wǎng)關(guān)被配置成NFS或Samba服務(wù)器。

2.2 彈性哈希算法

對于基于中心的分布式系統(tǒng)而言,元數(shù)據(jù)處理是決定系統(tǒng)擴展性、性能以及穩(wěn)定性的關(guān)鍵。大多數(shù)傳統(tǒng)分布式存儲系統(tǒng)通過使用一個中央元數(shù)據(jù)服務(wù)器來解決這個問題。它是一個集中的服務(wù)器,里面包含的所有文件的名稱和相關(guān)的物理位置,但這樣系統(tǒng)可能有兩方面的問題。

1)性能瓶頸:元數(shù)據(jù)服務(wù)器成為性能瓶頸。數(shù)據(jù)在任意時間被以任何方式被存取時,元數(shù)據(jù)都必須同步更新記錄信息。由于文件和文件操作的增加,集中式的元數(shù)據(jù)系統(tǒng)可能成為性能瓶頸。

2)單點故障:這可能是一個更為嚴(yán)重的問題,即集中式元數(shù)據(jù)服務(wù)器成為單點故障。如果元數(shù)據(jù)服務(wù)器離線或被破壞,所有操作基本上就會停止。

另一種方法是放棄集中元數(shù)據(jù)服務(wù)器,而采用分布式元數(shù)據(jù)的方法,即引入多個元數(shù)據(jù)服務(wù)器,形成一個元數(shù)據(jù)服務(wù)器集群。這種方法雖然克服了集中式元數(shù)據(jù)存儲的缺點,但它又引入了新的性能和可用性問題。因為元數(shù)據(jù)服務(wù)器之間通過使用各種鎖和同步機制來保持數(shù)據(jù)同步時,帶來了大量的性能開銷,還面臨著元數(shù)據(jù)未能正確保持同步或被損壞時,導(dǎo)致多個實例之間不再完全一致的風(fēng)險情況。

因為將元數(shù)據(jù)和數(shù)據(jù)分離的存儲系統(tǒng)都面臨著性能和可靠性問題,Gluster另辟蹊徑,不再將元數(shù)據(jù)從數(shù)據(jù)中分離,而通過彈性哈希算法尋址數(shù)據(jù),它是Gluster許多獨特的優(yōu)勢的關(guān)鍵。Gluster中數(shù)據(jù)訪問流程如下:

1)以文件路徑和文件名作為輸入?yún)?shù),計算Hash值。

2)根據(jù)Hash值在集群中選擇子卷(存儲服務(wù)器),進行文件定位。

3)對所選擇的子卷進行數(shù)據(jù)訪問。

通過使用彈性哈希算法,使得Gluster的每次文件存取操作更快和更可靠,因為使用算法計算元數(shù)據(jù)在速度上超過任何從存儲介質(zhì)檢索元數(shù)據(jù)的速度,也不存在對任何單一的元數(shù)據(jù)存儲節(jié)點的訪問瓶頸了,因為每個節(jié)點都是獨立的,無需同步元數(shù)據(jù),實現(xiàn)了真正的分布式部署的線性擴展。

Gluster的彈性哈希算法的采用的是 Davies-Meyer算法,將一個給定的路徑/文件名作為算法的輸入,然后得到唯一的定長輸出值。Davies-Meyer算法具有良好的平均分布特性,計算效率很高。假設(shè)邏輯卷中的存儲節(jié)點有N個,則輸出值的整數(shù)空間被平均劃分為N個連續(xù)子空間,每個空間分別映射到一個存儲節(jié)點。這樣,計算得到的Hash值就會被投射到一個存儲節(jié)點,即選擇的子卷。

然而在具體產(chǎn)品實現(xiàn)中需要考慮到現(xiàn)實中可能發(fā)生的各種情況,比如磁盤故障、容量耗盡、文件需要重新分配等,所以彈性哈希算法還需要適應(yīng)添加或刪除物理磁盤、個別磁盤訪問頻率過高等問題,從而使系統(tǒng)具備彈性線性擴展的特點。Gluster通過以下方法來解決:

1)設(shè)置了一個非常大數(shù)目的虛擬卷。

2)使用哈希算法分配文件給虛擬卷。

3)使用一個單獨的進程來分配虛擬卷到多個物理設(shè)備。

因此,添加或刪除磁盤或節(jié)點時,算法本身并不需要改變,只是將虛擬卷重新遷移或分配到新的物理卷。這樣負載波動或性能調(diào)優(yōu)時,存儲服務(wù)器可以動態(tài)添加或刪除,數(shù)據(jù)自動在整個存儲系統(tǒng)的服務(wù)器中重新平衡[7]。

如果文件重命名或移動文件,彈性哈希算法顯然會計算出一個不同的值,這會導(dǎo)致文件被定位到一個不同的邏輯卷。因為文件可能很大,改寫并移動文件通常不是一個實時操作。為解決這個問題,在文件被重新命名時,Gluster會創(chuàng)建一個指向原邏輯卷的指針。用戶通過新文件名計算出邏輯卷位置時,系統(tǒng)會通過指針將文件重定向到以前邏輯卷的位置。在后臺進程完成文件的遷移后,指針被移除。類似地,如果文件需要移動或重新分配(例如,如果磁盤因為訪問頻率過高或性能在下降),前臺實時發(fā)布遷移操作指令,物理數(shù)據(jù)遷移置于后臺選擇適當(dāng)時機執(zhí)行。

2.3 系統(tǒng)特點

(1)彈性存儲

彈性存儲的概念,是指能夠靈活地適應(yīng)數(shù)據(jù)的增長(或減少),在不中斷系統(tǒng)的情況下按需對存儲池中的資源做添加或刪除。Gluster設(shè)計目標(biāo)之一就是彈性,它允許動態(tài)增刪數(shù)據(jù)卷、擴展或縮減數(shù)據(jù)卷、增刪存儲服務(wù)器等,而不影響任何正在運行的業(yè)務(wù)。最新Gluster版本已具有良好的彈性,能夠滿足對存儲系統(tǒng)彈性要求高的應(yīng)用需求,尤其是對云存儲服務(wù)系統(tǒng)。

(2)線性橫向擴展

存儲系統(tǒng)的擴展能力分為縱向擴展(Scale-Up)和橫向擴展(Scale-Out)??v向擴展指提高單個節(jié)點的存儲容量或性能,但存在理論上或物理上的各種限制,不能無限制的增長。橫向擴展指通過增加存儲節(jié)點來提升整個系統(tǒng)的容量或性能,這是最主要的存儲擴展機制,目前大多分布式文件系統(tǒng)都具備橫向擴展能力[8-10]。

但要真正實現(xiàn)線性擴展對于存儲系統(tǒng)而言是非常困難的,通常系統(tǒng)規(guī)模擴展與性能提升之間是LOG對數(shù)曲線關(guān)系,因為規(guī)模的擴展同時會產(chǎn)生開銷而消耗了部分性能的提升。Gluster是真正線性橫向擴展架構(gòu),它通過橫向擴展存儲節(jié)點即可以獲得線性的存儲容量和性能的提升。Gluster利用3種基本技術(shù)來獲得線性橫向擴展能力:①消除元數(shù)據(jù)節(jié)點;②高效數(shù)據(jù)分布,獲得擴展性和可靠性;③通過完全分布式架構(gòu)的并行化獲得性能的最大化。

Gluster通過綜合縱向擴展和橫向擴展技術(shù),獲得了多維擴展能力,能夠?qū)⒏啻疟P、內(nèi)存、I/O資源聚集成更大容量、更高性能的虛擬存儲池。

3 結(jié)語

通過先進的架構(gòu)設(shè)計,Gluster在大幅降低構(gòu)建和維護成本的基礎(chǔ)上,能夠提供具有高擴展性、高性能、高可用性的彈性存儲系統(tǒng)。通過使用彈性的哈希算法完全消除元數(shù)據(jù)的特點,使Gluster的具有突出的適應(yīng)能力,這極大地降低了數(shù)據(jù)丟失、損壞或變得不可用的風(fēng)險。

目前,Gluster正處于快速發(fā)展的過程中,無中心的架構(gòu)使它具有天然的獨特優(yōu)勢,現(xiàn)在已有基于它推出商業(yè)化的存儲系統(tǒng),因此Gluster是一個有著廣闊前景的集群文件系統(tǒng),特別適合于構(gòu)建云存儲系統(tǒng)。

[1] 王會波.安全存儲與存儲安全[J].信息安全與通信保密,2012(12):18-19.

[2] 侯建,帥仁俊,侯文.基于云計算的海量數(shù)據(jù)存儲模型[J].通信技術(shù),2011,44(05):163-165.

[3] GHEMAWAT S,GOBIOFF H,LEUNG S-T.The Google File System[C]//Proceedings of the 19th ACM Symposium on Operating Systems Principles. New York:ACM Press,2003:29-43.

[4] DECANDIA G,HASTORUN D,JAMPANI M,et al.Dynamo:Amazon's Highly Available Key-value Store[C]//SOSP'07:Proceedings of the 21st ACM Symposium on Operating Systems Principles.New York: ACM,2007:205-220.

[5] Gluster Community,Introduction_to_Gluster.pdf[EB/OL].(2012-04-13)[2010-10-15].http://download.gluster.com/pub/gluster/documentation/Introduct ion_to_Gluster.pdf.

[6] Gluster Community,Gluster Documentation[EB/OL].(2012-04-18)[2011-08-10].http://www.gluster.org/community/documentation/index.php/Gluster_3.1.x_Documentation.

[7] Gluster Community,Gluster_Architecture[EB/OL].(2012-04-18)[2010-10-15].http://download.gluster.com/pub/gluster/documentation/Gluster_Architecture.pdf.

[8] Gluster Community, An Introduction to Gluster Architecture[EB/OL].(2012-04-22)[2011-08-10].https://confluence.oceanobservatories.org/download/attachments/30998760/An_Introduction_To_Gluster_ArchitectureV7_110708.pdf?version=1&modificationDate=1322845342000.

[9] 張秋江,王澎.云計算的安全問題探討[J]. 信息安全與通信保密,2011(05):94-95.

[10] 項力,吳學(xué)智,王斌.基于云計算的下一代數(shù)據(jù)中心設(shè)計[J].通信技術(shù),2012,45(06):107-109,112.

猜你喜歡
存儲系統(tǒng)哈希客戶端
分布式存儲系統(tǒng)在企業(yè)檔案管理中的應(yīng)用
哈爾濱軸承(2020年2期)2020-11-06 09:22:36
天河超算存儲系統(tǒng)在美創(chuàng)佳績
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
基于OpenCV與均值哈希算法的人臉相似識別系統(tǒng)
華為震撼發(fā)布新一代OceanStor 18000 V3系列高端存儲系統(tǒng)
基于維度分解的哈希多維快速流分類算法
計算機工程(2015年8期)2015-07-03 12:20:04
一種基于STM32的具有斷電保護機制的采集存儲系統(tǒng)設(shè)計
基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗證算法
計算機工程(2014年6期)2014-02-28 01:25:40
九龙城区| 阳山县| 乐安县| 曲周县| 伊吾县| 从江县| 竹山县| 海城市| 原阳县| 措勤县| 宁国市| 永仁县| 土默特左旗| 凉城县| 揭东县| 镇坪县| 公主岭市| 芜湖县| 平阴县| 阳山县| 靖边县| 措勤县| 阳西县| 巴东县| 东莞市| 宁德市| 宝清县| 宜兰市| 镇远县| 金坛市| 镇沅| 肥东县| 永登县| 灌云县| 三台县| 丹东市| 古丈县| 包头市| 阿拉善左旗| 百色市| 平武县|