2014年7月31日,由DOIT傳媒和存儲在線舉辦的首屆中國閃存峰會在亮馬河飯店盛大召開,來自搜狐研究院基礎架構部的彭毅為我們分享了《優(yōu)化性能,提高利用率——SSD助力搜狐服務器應用》,與大家共同探討搜狐在服務器應用中把SSD引入到基礎架構中所帶來的收益。

以下是演講文字實錄:

大家好,我是來自搜狐研究院基礎架構部的彭毅,很高興跟大家探討一下搜狐在服務器應用中把SSD引入到搜狐的基礎架構中給搜狐帶來的收益。

搜狐公司旗下有很多的業(yè)務,包括搜狐的門戶業(yè)務,還有搜狐獨立的上市子公司,專門做游戲領域的暢游,以及搜狐視頻,搜狐焦點,還有我們經常做一些搜索使用的搜狗,搜索引擎,及搜狗地圖,還有大家耳熟能詳?shù)乃压份斎敕ǖ取T谶@些業(yè)務中,當然搜狐還有很多其他的一些業(yè)務。

在這些主要的業(yè)務中,各個業(yè)務部門的技術人員與搜狐基礎架構的技術人員在經常探討業(yè)務與基礎架構的有機整合。在業(yè)務對性能需求的同時,基礎架構會針對業(yè)務的需求給他們提供各種各樣的解決方案,在其中,搜狐在使用SSD的業(yè)務是在2008年的8月份左右。首先是在搜狗的搜索引擎其中的一個索引的這么一個模塊出現(xiàn)了一個非常強的一個I/O的瓶頸。在這個時候我們?yōu)檫@個業(yè)務尋找解決方案的時候,我們看到了SSD給我們帶來的一些益處。

當時我們部署SSD的動力,發(fā)現(xiàn)在搜狐的業(yè)務中,有很多像數(shù)據(jù)庫業(yè)務,像其他的一些比如說搜索引擎,還有一些視頻業(yè)務,在解決I/O的時候往往都是在傳統(tǒng)方式下使用多硬盤解決I/O的性能問題。但是,隨著傳統(tǒng)硬盤的發(fā)展,我們發(fā)現(xiàn)一個很大的問題,就是硬盤的容量增長遠遠大于它的性能增長。傳統(tǒng)磁盤靠轉速和吞吐量解決性能問題,但是容量增長遠遠大于轉速。當搜狐使用1500轉的傳統(tǒng)硬盤時,不僅僅是在功耗上、在制冷上,在大量引入1500轉的春秋硬盤對機房產生的功耗及散熱也給我們的基礎架構帶來非常大的挑戰(zhàn)。我們需要有一種技術手段,或者一種新興技術幫助我們解決我們遇到的問題。

在搜狐對SSD進行研究的過程中,我們發(fā)現(xiàn)SSD性能上已經完完全全滿足了我們業(yè)務上遇到的一些問題。但是,最關鍵的問題主要是成本與容量比值的問題,也就是說,我們互聯(lián)網公司經常講的性價比的問題。就是我們解決一個性能問題的同時,它所付出的成本是什么樣的。

在搜狐部署SSD的應用過程中,我們也有很多對能耗的考慮。因為像互聯(lián)網公司它的服務器規(guī)模非常大,一般互聯(lián)網公司在幾萬臺服務器的規(guī)模,在大量的數(shù)據(jù)中心服務器運轉的時候要消耗大量的電能,傳統(tǒng)磁盤是機械格式的硬盤,在工作當中要消耗大量的電力。我們部署SSD的時候同時也能減少我們服務器對能耗的消耗,對我們數(shù)據(jù)中心的減耗也帶來了一個非常明顯的變化。而且還有在一個比較突出的情況是什么呢?就是比如我們有一些,像08年奧運會的時候北京有很多地區(qū)對電力的需求是突增的,包括有一些數(shù)據(jù)中心有大量的用戶在互聯(lián)網進行訪問,當時搜狐是2008奧運會互聯(lián)網的贊助商,當時有很多用戶訪問我們公司的服務器,對整個機房能耗的增長是非常大的。

那么,在這個時候因為電力屬于這個機電設施,它不能很快的順應我們的需求,它有一定的滯后性。那么,在這個時候,我們就利用SSD代替?zhèn)鹘y(tǒng)磁盤,減少I/O消耗的同時對電力的增加。從2008年的下半年開始,在搜狐的各個業(yè)務線上我們開始尋找有可能啟用SSD的一些業(yè)務,尋找這些業(yè)務的同時,我們首先有我們的部門對傳統(tǒng)的磁盤和SSD進行了一些相應的研究和一些報告的制作。當時我們針對普通磁盤的轉速,內部傳輸速率,包括接口方式等等一些相關的傳統(tǒng)磁盤的指標的評定點與SSD進行了一些相關的對比。在這一塊,我們得到就是說,傳統(tǒng)磁盤的容量非常大,但是成本非常低,而且這種磁盤是非常成熟的,而SSD性能非常高,功耗也是極低的,而且存儲結構非常簡單,減少了很多機械結構。但是,SSD也有一定的問題,就是單盤的容量在2008年那個時候還是非常低,和傳統(tǒng)磁盤的容量比還是有非常大的差異。我們當時啟用的最大容量是160G的SSD,而且對SSD使用的性能相關指標的時候都有一個寫入壽命的非常強烈的一個指標,在這一塊也是我們當時啟用SSD的時候考慮的一個關鍵的點,我們在可能啟用的SSD的業(yè)務上進行了三年的預算,就是對業(yè)務線目前的I/O的寫入量進行了三年的估算。當我們的估算值不低于這個寫入壽命的時候,我們在業(yè)務上推薦使用SSD。

因為傳統(tǒng)磁盤我們知道一旦出現(xiàn)一些災難的情況下,當然傳統(tǒng)磁盤可以有很好的保護,比如說備份手段,可以很好的解決數(shù)據(jù)的安全問題。但是,在SSD的年代,SSD的盤還非常貴,我們引入Rade技術相應不是很現(xiàn)實。然后我們看到這個傳統(tǒng)磁盤的時候,對它進行數(shù)據(jù)恢復的時候,它相應的數(shù)據(jù)恢復技術是非常成功的。但是,電存儲,尤其SSD這種電存儲技術,當數(shù)據(jù)盤,尤其Flash這種顆粒級損壞的時候我們數(shù)據(jù)是非常難以恢復的,所以這一塊也是對我們在尋找可使用SSD這個業(yè)務時候對我們提出了比較大的挑戰(zhàn)。我們就找了一些搜狐內部首先是允許有一些數(shù)據(jù)丟失的業(yè)務,就是它從架構上已經解決了數(shù)據(jù)丟失之后,它的數(shù)據(jù)可以從架構上進行重構。

當時我們選用SSD的時候也看到很多的固態(tài)硬盤它帶有緩存,就是寫入的時候有一個低RAM緩存。但是,所有帶有低RAM緩存的SSD產品都需要已有電容給它供電,保證突然斷電的時候數(shù)據(jù)不會丟失,這也是我們選擇SSD盤的時候給我們帶來的一些比較大的挑戰(zhàn)。

目前在搜狐的SSD硬盤的使用中主要帶來兩個場景的應用,一個是把相對大容量的固態(tài)硬盤作為我們數(shù)據(jù)盤存儲真實的數(shù)據(jù),然后它我們的收益主要有大幅度提高了I/O性能,節(jié)省了很多的功耗,提高了處理器的利用率。在一臺服務器中,因為現(xiàn)在CPU的速度越來越快,我們知道計算機系統(tǒng)遵循木桶原理,所有它的性能取決于最短的板,SSD的引入對我們服務器的處理器的利用率提高了很多。

目前這種大容量的固態(tài)硬盤作為數(shù)據(jù)盤主要應用在像搜索、地圖,包括視頻,還有一些數(shù)據(jù)庫應用中,他們作為我們的數(shù)據(jù)盤來存儲。在這一塊,我們數(shù)據(jù)庫這一塊的引入相對來說比較晚,搜狐在數(shù)據(jù)庫應用中是在2009年下半年,接近年末的時候才開始嘗試使用固態(tài)硬盤,因為像數(shù)據(jù)庫業(yè)務是相對來說比較核心的業(yè)務,它對數(shù)據(jù)的安全是非常在意的。數(shù)據(jù)庫的DBI他們更愿意用傳統(tǒng)成熟的技術有效的解決數(shù)據(jù)安全問題。在這一塊,他們會采取傳統(tǒng)的技術手段,然后比如一些相關的手段,用大型的盤陣系統(tǒng),提高整個系統(tǒng)的I/O水平。但是,從2009年開始,我們不斷和他們進行溝通,跟他們說大家可以嘗試一下這個SSD這個固態(tài)硬盤,他們會給你們提供大量的收益,而且在這一塊也不會造成非常突發(fā)的數(shù)據(jù)的損壞。

所以,在2009年的時候我們數(shù)據(jù)庫開始嘗試在一些備庫上開始使用SSD固態(tài)硬盤,在正式的產品庫上,實際上最早應用是在2010年的上半年,在搜狗的輸入法,在索引庫上,輸入法的詞庫上成功的使用了固態(tài)硬盤。因為這個業(yè)務它的特點是和固態(tài)硬盤的標準的應用領域有些差異,我們在尋找固態(tài)硬盤作為我們內部應用點的時候,我們會著重找業(yè)務的情況是什么呢?它要大量的讀寫,而沒有很大量的數(shù)據(jù)寫入的情況下來進行選取,而輸入法的詞庫它正好和我們之前選取的這個點有一個相反的地方,就是它有大量的數(shù)據(jù)寫入,每天都有大量的數(shù)據(jù)寫入,而讀取和寫入的比大概是一個5:5的比例。所以,在這一塊,是我們也做了一些技術處理,后面我們會講到這個應用的場景。

另外的一種應用就是我們選取了相對容量較小的SSD,我們當時宣傳40G的SSD作為我們的系統(tǒng)盤。當時是我們給一個業(yè)務線在尋找解決一個盤類的情況下,大概也是在2009年的下半年的時候,存儲服務器那個時候突然就興起了在國內,所有的IT公司基本上都在研究存儲服務器的應用空間。這個時候搜狐也在選擇和考慮使用這種存儲服務器作為我們大量的數(shù)據(jù)存放的點。但是這個時候我們傳統(tǒng)的服務器基本上那個時候的磁盤還在146G,SAS 10K的146G,300G這個容量,因為搜狐根據(jù)它的傳統(tǒng)的做法會找出一塊單獨的盤進行OS的部署,然后其他的磁盤來存數(shù)據(jù)。當存儲服務器上來的時候,它的磁盤都是以T級為單位。這個時候我們如果要是由一塊磁盤裝SSD對我們來說空間的浪費非常大,這時候我們有幾種辦法,要么改變傳統(tǒng)的運維的相關工具,重新制定一套運維的標準及進行一些運維工具的二次開發(fā),重新改變我們之前的運維習慣。或者我們進行一種特殊的手段,然后進行數(shù)據(jù)存儲。

后來我們和ODM一塊兒進行了一些研究,我們成功在一個存儲服務器內部安裝了一個40G的SSD,然后通過性能的連接,然后進行了一些改造,然后把這個盤成功引入進去,然后直接在主辦的藍橋上把這塊盤識別起來,裝上SSD,這樣給我們帶來的收益非常大。以前一臺存儲服務器,按照原來標準使用只能使用一塊盤,只有11T的空間,現(xiàn)在我們又得到更多的盤位,現(xiàn)在這塊服務器就變成了12塊數(shù)據(jù)盤。后來這個案例進行了一些宣傳,后來看到很多做存儲服務器的廠商都陸陸續(xù)續(xù)推出了“12+2”的規(guī)格,就是12塊大盤加2塊小盤的規(guī)格。而且最開始我們作為系統(tǒng)盤僅僅想給我們節(jié)省出一個盤位來,后來把SSD引入到系統(tǒng)盤這個應用場景中,我們發(fā)現(xiàn)還有其他很多收益。因為互聯(lián)網公司服務器的上線基本上成批量,一次上線幾百臺,幾千臺,數(shù)據(jù)的輸送對互聯(lián)網公司來說是比較痛苦的過程。SSD作為系統(tǒng)盤之后,我們發(fā)現(xiàn)在OS的部署這一塊對我們來說很輕松,以前基本上30分鐘左右才能部署完一臺服務器,現(xiàn)在十幾分鐘就可以部署完,在這個場景下,也給我們節(jié)省了大量的時間成本,這一塊對我們收益也是非常大的。而且因為我們的使用基本上都是Linux的系統(tǒng),在那個年代內存還不是很大,基本上16G,32G就已經算非常豪華的配置了。在那個時候有很多的應用,在調用大量內存的時候,它沒有更多的可靠空間的時候,它就會在磁盤上開一個smart區(qū)域,把暫時不用的數(shù)據(jù)寫到Smart空間。在這個場景下,不僅僅是給我們解決了服務器的存儲容量的問題,而且還給我們得到了系統(tǒng)的性能的提升。

目前SSD作為一個系統(tǒng)盤基本上已經成為搜狐的一個標配了,在這一塊我們基本上所有的非特定業(yè)務的服務器都會有一塊到兩塊SSD作為OS盤。目前,我們現(xiàn)在看到的SSD的容量越來越大,成本也越來越低,我們選用的一個小容量的SSD目前也已經停產了。這一塊我們這個部門還在做一些更深的研究,我們現(xiàn)在在利用技術把筆記本的一些SSD再引入到服務器中來,通過這些技術降低我們在服務器應用中的成本。

現(xiàn)在和大家分享一下搜狐在SSD的選用場景應用還有一些我們在使用SSD中的一些特殊的技術相關的一些東西。我這個部門是基礎架構部門,它負責搜狐硬件的一些評測相關的東西,還有一些基礎架構的應用場景的研究工作。在SSD這塊評測中,我們通過之前對SSD的了解及技術的跟蹤,我們發(fā)現(xiàn)對影響SSD這塊的主要性能,第一部分就是主控芯片,主控芯片有很多家,英特爾等。第二個影響它的速度就是NAND Flash芯片,還有就是緩存,還有比如它采用的是幾路并發(fā),什么接口,這些也會影響。但從我們評測的過程中得到的數(shù)據(jù)分析,這三部分是影響一個SSD它的最關鍵的三個要素,所以在這一塊,我們在做SSD測試的時候,我們不僅僅是在進行一個跑分的測試,還要對固態(tài)硬盤進行一些排解,要看到你的主控芯片是什么等級,NAND Flash芯片是什么等級,緩存是什么樣的。我們認為這些技術可能相對來說對企業(yè)級的應用場景,尤其像數(shù)據(jù)庫的應用可能不太適合,我們就會選擇其他的進行緩沖技術處理的SSD。

在SSD選用的應用場景下,我們基本上著重在兩點選用。第一點就是具有非常高的IO瓶頸的這樣一個應用。首先這樣的應用有非常強烈的使用SSD,就是更快能解決IO瓶頸的這些設備跟技術的強烈的愿景。然后,我們會選取大量的以讀為主的業(yè)務,而且它的讀,絕大部分讀操作是隨機的讀取,而不是順序的讀取。在這一塊我們選擇業(yè)務的時候,尤其是搜狐初期使用SSD,那個時候相對來說還比較新,很多業(yè)務使用傳統(tǒng)磁盤他們覺得可以滿足自己的需求,但是IO也是他們一個比較突出的問題。然后有新技術突然出現(xiàn)的時候,有新的設備,他們覺得這個東西還比較早,不成熟,然后他們在應用的時候也會有一些擔心,我們開始就按這兩點去尋找一些內部應用的場景。但是,這一塊隨著我們的實踐,我們還是得到了非常大的收益,目前現(xiàn)在各個業(yè)務線基本上已經對固態(tài)硬盤有了非常大的認識,然后他們一旦在服務器應用中遇到了IO瓶頸的問題,但是首先肯定會想到SSD。

然后,SSD的寫入壽命是一個最大的應用的難題。在這一塊,我們開始對寫入壽命這一塊還沒有特別大的在意,我們只是在場景中,在上線之前我們會進行一個特定的時間點的場景的計算,在一定時期看這個業(yè)務線會不會把這個磁盤的寫入容量寫滿,一到寫滿的時候,會有一些性能的問題。在這一塊的時候,我們剛才提到的那個輸入法的詞庫,在這一塊我們遇到一個非常大的挑戰(zhàn)。這個業(yè)務它有非常明顯的IO瓶頸問題,而且它的讀寫幾乎全是隨機的。在這一塊,我們和業(yè)務線帶一塊兒進行溝通的時候,進行了一些預計算,給我們得出的結論非??植馈;旧纤膱鼍暗膶懭肓浚旧弦粔KSSD一年就會讓他們寫報廢,這一塊對于我們來說是不可接受的,一旦數(shù)據(jù)寫入過來之后,而且服務器都是批量上線,如果一批SSD,或者一個集群同時出現(xiàn)這個問題,對用戶的影響是非常大的。那么,這一塊我們和SSD的技術人員進行了深入溝通,然后我們發(fā)現(xiàn)在超量控制技術這一塊可以有效的解決我們的問題。當時我們是在這個業(yè)務線上進行了一些測算之后,然后我們選取了一個160G的SSD,我們利用超量供給技術,將一塊160G的SSD改成120G上線。

當時我們是考慮到三年的場景,雖然容量上對我們有一些損失,我們只使用了3/4的容量,但是這個時候,從目前看,這批的詞庫,目前所使用的這批,從160G修改到120G的SSD目前還在使用,已經基本上將近四年多的時間,快到五年了。親戚我們還沒有進行大量的SSD的監(jiān)控,后期我們考慮到SSD有可能,因為很多業(yè)務線的集群基本上都是批量上的,這一塊我們?yōu)榱朔乐雇话l(fā)的故障,我們在2013年的年底搜狐內部啟動了一個新的項目叫SMART項目,它不僅僅能監(jiān)控所有的底層的硬件服務器的各種應用狀態(tài),而且著重對搜狐內部所有的SSD進行壽命預期,就是通過這個SMART這個信息對SSD壽命及業(yè)務的寫入量讀取量的一個分析,然后進行了一個場景的綜合的一個計算之后,它會對每臺機器上的SSD進行一個生命預言,這個生命預言就是你從使用到現(xiàn)在已經使用了多長時間,那么,預計你的這個業(yè)務在同樣的IO寫入下還能繼續(xù)寫入多少天,做了這樣一個功能,給使用SSD的部門進行一個有效的對它購買新的SSD,然后進行一些業(yè)務遷移,給它一個很好的指導。

通過SMART監(jiān)控SSD這個技術,每個SSD廠商的SMART監(jiān)控值所能提供的信息量也是不一樣的。像有些好一些的,它會在所有的SMART關鍵的技術上會羅列的非常清楚。但是,我們從前期的IT測試中,我們通過標準的SMART工具讀取出來的每家所能提供的詳細點是差異非常大的。在這一塊,由于搜狐和英特爾一直保持著非常良好的關系。然后在這一塊,我們在底層監(jiān)控這一塊得到英特爾工程師大量的技術支持,他們給了我們很多的指導,所以才有我們后來SMART對SSD壽命預言的這么一個功能。

我們在應用SSD這個時候,我們會對很多場景,SSD這個寫入進行一些預期分析。其實這個預期分析我們在做所有的場景啟用之前,我們只能是對當前這個點,或者說它最繁忙的這個點進行一個預期上面的預算。但是,在我們這套系統(tǒng)上了之后,我們會發(fā)現(xiàn)很多業(yè)務它的寫入和讀取,它的分布是非常奇特的,和它的業(yè)務非常有相關性。比如說我們的游戲業(yè)務,它的寫入情況和Web的服務所寫入的分布是非常不一樣的。Web的業(yè)務分布基本上在下午兩點到六點是寫入量頻繁的時間,然后有一個空缺的時間,然后在游戲的時間基本上從十點到夜里兩點的時候是寫入最頻繁的時刻。這個時刻,雖然SSD我們能預言他的時間點是這樣,但是它每天平均的寫入量又是不一樣的。在這一塊,我們后來采用了某一應用的一個特定場景的一個段之間的預算,我們在某一個場景下,我們選取它一個月,最長到三個月的寫入的統(tǒng)計,然后根據(jù)它的業(yè)務寫入的特性,然后進行了一些分析,然后就更準確的能針對我們的場景進行一些挑選。

目前現(xiàn)在在搜狐有大量的數(shù)據(jù)庫的機器,數(shù)據(jù)庫現(xiàn)在我們采用了傳統(tǒng)盤式的SSD,而且因為現(xiàn)在虛擬化技術都比較普及,我們在搜狐的很多的數(shù)據(jù)庫應用下也啟用了虛擬化技術。但是,虛擬化現(xiàn)在目前看到最大的一個問題是,因為CPU是非??斓?,內存的容量添加現(xiàn)在也是非常大。那么,就是IO這個問題是最大的問題。數(shù)據(jù)庫業(yè)務它的IO其實是非常的敏感,它的IO的瓶頸是非常大的。那么,我們在這個數(shù)據(jù)庫業(yè)務啟用虛擬化之后,確實因為數(shù)據(jù)庫業(yè)務我們能看到有大量的CPU的空閑,也有內存的空閑,網絡的空閑,就是IO非常滿。我們針對這個數(shù)據(jù)庫的業(yè)務這個場景我們進行了一個設計,我們對一臺服務器,對它添加八塊SSD,八塊傳統(tǒng)的盤式的SSD,對服務器進行虛擬化,我們在搜狐很多數(shù)據(jù)庫進行了這樣的改造,目前這種應用基本上對我們讀寫分離的數(shù)據(jù)庫場景都采用了,這是對我們應用比較大的一個改變。因為互聯(lián)網公司在之前提出的一些技術方向就是分布式,然后小型化這樣的一個過程。那么,這樣對我們來說沒有很多大型的像EMC,Oracle他們提供了很多的更大型的,更安全的數(shù)據(jù)存儲系統(tǒng),也有更快的存儲系統(tǒng),但是對互聯(lián)網的技術來說,可能利用那樣的技術,或者那樣的系統(tǒng),可能在快速變更這一塊,在運營過程中會給我們帶來更大的挑戰(zhàn),所以互聯(lián)網公司基本采取小型分布式的結構。在數(shù)據(jù)庫的應用中,SSD的應用模型對我們來說也是非常巨大的,這個場景基本上是在去年把它變成數(shù)據(jù)庫標準的一個應用。

還有一個就是SSD的電氣特性,就是說,我們在改造之前提到的那個硬盤存儲服務器的這一塊。我們發(fā)現(xiàn)很多的傳統(tǒng)的服務器具有熱插拔功能的傳統(tǒng)服務器,它的背板在設置上有很多設置都是為傳統(tǒng)磁盤設計的,而沒有考慮SSD的這個引入。雖然SSD盤現(xiàn)在在接口形式上或者在數(shù)據(jù)存儲過程中,它在盡量的模擬傳統(tǒng)硬盤,但是它畢竟是一個電存儲設備,它不是一個機械存儲設備。在這一塊,我們有一批高性能服務器想添加SSD的時候遇到一個非常大的問題就是背板的問題,這一塊后來我們也是采取辦法,因為服務器的廠商不給我們支持,他們認為他們服務器設計之初就沒有設想用戶會使用其他的非磁盤性的存儲。后來因為場景的IO出現(xiàn)了非常嚴重的問題,我們又不得不上,后來我們又通過一些特殊的裝置,我們做了一個轉化托架,因為我們很多服務器都是有一個筆記本是光驅類的,我們做了一個托架,包括供電的問題,實際上在服務器中,添加非設計的盤類的存儲空間的時候,它的供電是一個非常大的挑戰(zhàn)。我們后來經過一些測算之后,我們通過服務器內制的USB口進行取電,來給SSD供電。

還有一個問題就是安置,春秋的服務器它基本上設計完成之后四個盤就是四個盤位,我們想添加額外的盤位不是很現(xiàn)實,我們就需要在內部空間上尋找可能性,去添加SSD。那么,在內部添加SSD的時候要考慮的因素就非常多,因為添加了設備,而破壞了原設計者對服務器內部風道的設計,而對散熱產生更多的影響,這個時候我們也會針對不同的服務器進行一些特殊的設置。

還有就是連接的問題,就是所有的數(shù)據(jù)線與主辦的連接問題,服務器內部和PC不太一樣,它對內部散熱有非常強烈的要求,而且有很多的硬盤,然后風扇也是非常多的在內部。服務器內部它的振動遠遠大于我們平時接觸的PC機和筆記本。所以在連接的一塊,數(shù)據(jù)線的連接簡簡單單插在上面是不行的,我們需要有特殊的辦法進行連接加固,進行一些穩(wěn)定性的東西。后來我們在這一塊基本上會采用定制某一種內置到2.5的轉接盒,另外就是帶不影響風道設計的地方把它固定下來,我們用熱熔膠,或者其他方式固定好,用這種方式來解決。我的分享就到這兒,謝謝大家!

分享到

fanz

相關推薦