精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Cinder磁盤備份原理與實踐

開發 開發工具
快照(Snapshot)、復制(Replication)、備份(Backup)是存儲領域中最為常見的數據保護技術。備份就是對數據進行導出拷貝并傳輸到遠程存儲設備中。

[[188733]]

一、背景

1.1 數據保護技術概述

快照(Snapshot)、復制(Replication)、備份(Backup)是存儲領域中最為常見的數據保護技術。快照用于捕捉數據卷在某一個時刻的狀態,用戶可以隨時回滾到這個狀態,也可以基于該快照創建新的數據卷。備份就是對數據進行導出拷貝并傳輸到遠程存儲設備中。當數據損壞時,用戶可以從遠端下載備份的數據,手動從備份數據中恢復,從而避免了數據損失。快照類似于git的commit操作,我們可以隨時reset/checkout到任意歷史commit中,但一旦保存git倉庫的磁盤損壞,提交的commit信息將永久丟失,不能恢復。而備份則類似于git的push操作,即使本地的數據損壞,我們也能從遠端的git倉庫中恢復。簡而言之,快照主要用于快速回溯,而備份則用于容災,還能避免誤刪除操作造成數據丟失。數據復制則類似于mysql的master/slave主從同步,通常只有master支持寫操作,slave不允許用戶直接寫數據,它只負責自動同步master的數據,但一旦master出現故障,slave能夠提升為master接管寫操作。因此復制不僅提供了實時備份的功能,還實現了故障自動恢復(即高可用)。

1.2 Cinder數據保護功能介紹

Cinder是OpenStack中相對成熟的組件(總分為8分的成熟度評分中獲得了8分滿分),也是OpenStack的核心組件之一,為OpenStack云主機提供彈性的塊存儲服務,承載著用戶大多數的業務數據,即使出現數據的絲毫損壞也將可能導致災難性后果,因此數據的完整性保護至關重要。不得不說Cinder對數據卷保護方面支持度還是比較給力的,目前Cinder已經同時支持了對數據卷的快照、復制和備份功能。

快照應該是Cinder非常熟悉非常受歡迎的功能了,也是Cinder默認支持的功能,幾乎所有的存儲后端都支持快照。而備份作為Cinder的可選功能之一,由于數據卷的存儲后端很多已經提供了多副本功能(比如Ceph存儲后端默認為三副本),通常很少人會再部署一套備份存儲集群,因此部署率并不是很高。復制也是Cinder的可選功能之一,目前支持的存儲后端還非常有限,最常采用的RBD存儲后端也是在Ocata版本才開始支持,并且要求Ceph版本需要支持rbd-mirror(jewel版本以上),因此受到用戶的關注度還不是很高,部署率較低。

二、深入理解Cinder數據卷備份原理

2.1 cinder backup功能介紹

cinder磁盤備份為用戶的數據卷實例提供備份和恢復功能,實現了基于塊的容災功能。從K版本開始,Cinder引入了增量備份功能,相對全量備份需要拷貝和傳輸整個數據卷,增量備份只需要傳輸變化的部分,大大節省了傳輸開銷和存儲開銷。通常情況下,當用戶執行備份或者恢復操作時,需要手動卸載數據卷,即數據卷不支持在掛載狀態下熱備份。從L版本開始,新增了force選項,當用戶指定force選項時能夠對掛載的數據卷強制執行備份操作,這樣可能帶來數據不一致的風險,不過社區針對這種情況做了些優化,比如在創建備份前先基于該數據卷快照創建臨時數據卷,然后基于臨時數據卷執行后續備份操作。

Cinder開啟備份功能,需要單獨部署cinder-backup服務。cinder-backup服務和cinder-volume服務類似,也支持各種不同的驅動,對接不同的存儲后端,目前支持的存儲驅動列表如下:

  • swift,備份數據保存在OpenStack Swift對象存儲中。
  • google,備份數據保存在Google Cloud Storage(GCS)中。
  • glusterfs,保存到glusterfs中。
  • nfs,保存到NFS中。
  • posix,保存到本地文件系統。
  • tsm,保存在IBM Tivoli Storage Manager(TSM)。
  • ceph,保存到ceph集群中。

從列表中看,目前cinder backup尚不支持備份數據到AWS S3中。

除了數據卷本身的備份,cinder backup還支持將元數據序列化導出(export record),這樣即使數據庫中的數據丟失了,也能從導出的元數據中快速恢復。

2.2 cinder backup原理剖析

前面提到cinder backup支持多種后端存儲驅動,但大體可以分為兩類:

  • 存儲系統本身就提供塊存儲服務,比如ceph。這種情況只需要直接導入到該存儲系統即可。
  • 存儲系統不支持塊存儲服務,只支持基于文件的存儲,以上除了ceph和tsm都屬于此類。此時備份采取了分塊備份策略,即首先把數據卷切割為一個個獨立的文件,然后分別把這些文件存儲到設備中。恢復時只需要重組這些小文件即可。

接下來我們針對此兩種情況深入研究下cinder backup的實現原理。

2.2.1 分塊備份策略在介紹之前先了解兩個重要的參數

  • chunk_size: 表示將volume切割成多大的塊進行備份,一個塊稱為一個chunk。在NFS中這個值叫做backup_file_size,默認是1999994880Byte,大約1.8G。在Swift中這個值叫做backup_swift_object_size,默認是52428800Byte,也就是50M。這個參數決定數據卷備份后塊的數量(Object Count),比如一個2GB的數據卷,如果chunk_size為500MB,則大約需要4個塊,如果使用本地文件系統存儲的話,對應就是4個文件。
  • sha_block_size: 這個值用于增量備份,決定多大的塊求一次hash,hash相同說明內容沒有變化,不需要備份。它決定了增量備份的粒度。在NFS中,這個值叫做backup_sha_block_size_bytes,在Swift中,這個值叫做backup_swift_block_size。默認都是32768Byte,也就是32K。在Ceph,沒有對應的概念。

對一個數據卷做全量備份時,每次從數據卷讀入chunk_size字節的數據構成一個chunk,然后每sha_block_size個字節做一次sha計算,并將結果保存起來,最后把chunk_size的數據進行壓縮(可以配置不壓縮)后保存到對應的存儲系統上,這就形成了NFS上的一個文件或者Swift中的一個object[6]。如此循環直到把整個數據卷都備份到存儲系統。

那恢復的時候怎么重組呢?這就需要保存元數據信息,元數據信息包括:

  • backup信息:其實就是數據庫中的信息,或者說就是一個backup object實例的序列化,包括backup name、description、volume_id等。
  • volume信息:數據卷信息,即volume實例的序列化,包括size、name等。
  • 塊信息:即objects信息,這是最重要的數據,記錄了每一個塊的長度、偏移量、壓縮算法、md5值,備份恢復時主要通過這些塊信息拼接而成。
  • 版本:序列化和持久化必不可少的參數。

除了保存以上元數據信息,還會按順序保存每一個block的sha256值。這些信息主要用于支持增量備份。做增量備份時,也是每次從數據卷讀入chunk_size字節的chunk數據,然后計算該chunk的每個block的sha值。不同的是,Cinder會把每一個block的sha值與其父備份對應的sha值比較,僅當該block的sha值與父備份block的sha值不一樣時,才保存對應的block數據。如果sha值和父備份的sha值相同,說明這個block的數據沒有更新,不需要重新保存該block數據,而只需要保存sha值。當然,如果有多個連續block的sha值都不一樣,則保存時會合并成一個object,通過元數據記錄該object在原volume的偏移量以及長度。

如圖1所示,假設一個chunk分為9個block,每個block為100KB,注意每個block都保存了sha256值,圖中沒有標識。基于該chunk做一次增量備份后,假設只有block 2、7、8有更新,則增量備份只會保存block 2、7、8,由于7和8是連續的,因此會自動合并成一個chunk,而block 2單獨形成一個chunk,即原來的chunk分裂成了兩個chunk,但總大小為300KB,節省了1/3的存儲空間。

圖1 增量備份原理圖

圖1 增量備份原理圖

備份的恢復參考文獻[6]講得非常清楚,這里直接引用:

全量備份的恢復很簡單,只需要找到對應的備份,將其內容寫回對應的volume即可。那么這里有個問題,每個備份都對應存儲上哪些文件呢,每個文件又對于原始volume中哪些數據?還記得創建備份時生成的metadata文件嗎,答案就在其中。恢復備份時,會讀取這個文件,然后將每一個備份文件恢復到對應的位置。當然,如果有壓縮也會根據metadata中的描述,先解壓再寫入對應的volume中。

增量備份的恢復稍微復雜一些,正如之前的描述,增量備份之間有依賴,會形成備份鏈,我們需要恢復所選備份及其在備份鏈上之前所有的數據。在恢復時,需要查詢數據庫,獲取當前備份及備份鏈上之前的所有備份,其順序是[所選備份,父備份,父父備份,…,全量備份],恢復的時候會按照相反的順序依次進行,即首先恢復全量備份,接著創建的第一個增量備份,第二個增量備份,直到所選的備份。每個備份恢復時依賴創建備份時生成的metadata文件,將備份包含的文件,恢復到volume中。每個備份的恢復和全量備份的恢復方式一樣。

從備份的原理可以看出,增量備份能夠節省存儲空間,但隨著備份鏈長度越來越長,恢復時會越來越慢,性能越來越差,實際生產環境中應該權衡存儲空間和性能,控制備份鏈的長度。

Swift、NFS、本地文件系統、GCS等都是使用以上的備份策略,實際上實現也是完全一樣的,區別僅僅在于實現不同存儲系統的Reader、Writer驅動。

2.2.2 直接導入策略

直接導入策略即把原數據卷導出后直接導入到目標存儲系統中。對于支持差量導入的存儲系統,增量備份時則可以進一步優化。

以Ceph為例,我們知道Ceph RBD支持將某個image在不同時刻的狀態進行比較后導出(export-diff)補丁(patch)文件,然后可以隨時將這個補丁文件打到某個image中(import-diff)。即ceph原生支持差量備份,利用該特性實現增量備份就不難了。不過有個前提是,必須保證cinder-volume后端和cinder-backup后端都是ceph后端,否則仍然是一塊一塊的全量拷貝。

如果是對volume進行第一次備份,則:

  1. 在用于備份的ceph集群創建一個base image,size和原volume一樣,name為"volume-VOLUMD_UUID.backup.base" % volume_id。
  2. 在原volume創建一個新的快照,name為backup.BACKUP_ID.snap.TIMESTRAMP。
  3. 在原RBD image上使用export-diff命令導出與創建時比較的差量數據,然后通過管道將差量數據導入剛剛在備份集群上新創建的RBD image中。

如果不是對volume第一次備份,則:

  1. 在原volume中找出滿足r"^backup\.([a-z0-9\-]+?)\.snap\.(.+)$"的最近的一次快照。
  2. 在原volume創建一個新的快照,name為backup.BACKUP_ID.snap.TIMESTRAMP。
  3. 在原RBD image上使用export-diff命令導出與最近的一次快照比較的差量數據,然后通過管道將差量數據導入到備份集群的RBD image中。

恢復時相反,只需要從備份集群找出對應的快照并導出差量數據,導入到原volume即可。

注意:

  • volume和backup都使用ceph后端存儲時,每次都會嘗試使用增量備份,無論用戶是否傳遞incremental參數值。
  • 使用直接導入策略,不需要元數據信息以及sha256信息。

三、踩過的“坑”

雖然在前期做了大量關于cinder backup的調研工作,但實際部署過程中仍然踩了不少坑,PoC測試過程也非一帆風順,還好我們在填坑的過程還是比較順利的。本小節總結我們在實踐過程中遇到的坑,避免后來者重復踩“坑”。

3.1 熱備份導致quota值異常

我們知道備份是一個IO開銷和網絡開銷都比較大的操作,非常耗時。當對已經掛載的數據卷執行在線備份時,Cinder為了優化性能,減少數據不一致的風險,首先會基于該數據卷創建一個臨時卷,然后基于臨時卷創建備份,備份完成時會自動刪除臨時數據卷。從代碼中看,創建臨時卷時并沒有計算quota,換句話說,創建的臨時磁盤是不占用quota值的。但刪除時調用的是標準的刪除接口,該接口會釋放對應數據卷占用的數據卷quota值(主要影響gigabytes和volumes值)。也就是說,創建的臨時磁盤使volume quota值只減不增,用戶可以通過這種方式繞過quota限制。目前該問題社區還未修復,已提交bug:https://bugs.launchpad.net/cinder/+bug/1670636。

3.2 不支持ceph多后端情況

我們內部cinder對接了多個ceph集群,不同的ceph集群通過不同的配置文件區分。但cinder-backup服務向cinder-volume服務獲取connection info時并沒有返回ceph的配置文件路徑,于是cinder-backup服務使用默認的配置文件/etc/ceph/ceph.conf,該ceph集群顯然找不到對應volume的RBD image,因此在多backend情況下可能導致備份失敗。不過該問題在新版本中不存在了。

3.3 使用ceph存儲后端時不支持差量備份

我們前面提到如果cinder-volume和cinder-backup后端都是ceph,則會利用ceph內置的rbd差量備份實現增量備份。那cinder-backup服務怎么判斷數據卷對應的后端是否ceph呢?實現非常簡單,只需要判斷數據卷的連接信息是否存在rbd_image屬性,實現代碼如下:

  1. def _file_is_rbd(self, volume_file):  
  2. """Returns True if the volume_file is actually an RBD image."""  
  3. return hasattr(volume_file, 'rbd_image'

社區從M版開始把與存儲后端交互的代碼獨立出來,建立了一個新的項目–os-brick,與之前的ceph驅動存在不兼容,沒有rbd_image這個屬性。因此backup服務會100%判斷數據卷不是ceph后端,因此100%執行全量備份。該問題社區還未完全修復,可參考https://bugs.launchpad.net/cinder/+bug/1578036。

四、我們的改進

4.1 獲取父備份ID

當備份存在子備份時,用戶無法直接刪除該備份,而必須先刪除所有依賴的子備份。目前Cinder API只返回備份是否存在依賴的子備份,而沒有返回子備份的任何信息,也沒有返回父備份的信息。當用戶創建了很多備份實例時,很難弄清楚備份之間的父子關系。我們修改了Cinder API,向用戶返回備份的父備份id(parent_id),并且支持基于parent_id過濾搜索備份。當用戶發現備份存在依賴時,能夠快速檢索出被依賴的子備份。當然,如果存在很長的父子關系時,需要一層一層判斷,仍然不太方便,并且不能很清楚的輸出備份的父子關系。于是我們引入了備份鏈的概念,下節詳細討論。

4.2 引入備份鏈概念

為了方便查看備份之間的父子關系,我們引入了備份鏈(backup chain)的概念,一個數據卷可以有多個備份鏈,每條備份鏈包括一個全量備份以及多個增量備份組成。我們新增了兩個API,其中一個API輸出指定數據卷的備份鏈列表,另一個API輸出指定備份鏈的所有備份點,按照父子關系輸出。目前我們的備份鏈只支持線性鏈,暫時不支持分叉的情況。通過備份鏈,用戶能夠非常方便地查看備份之間的父子關系和備份時間序列,如圖2。

圖2 備份鏈展示

圖2 備份鏈展示

4.3 創建備份時指定備份鏈

創建增量備份時,默認是基于時間戳選擇最新的備份點作為父備份,我們擴展了該特性,支持用戶選擇在指定備份鏈上創建備份,這樣也可以避免備份鏈過長的情況。

五、后續工作

Cinder backup功能已經相對比較完善了,但仍然存在一些功能不能滿足客戶需求,我們制定了二期規劃,主要工作包括如下:

5.1 級聯刪除

目前Cinder不支持備份的級聯刪除,即如果一個備份實例存在依賴的子備份,則不能刪除該備份,必須先刪除其依賴的所有子備份。如果備份鏈很長時,刪除備份時非常麻煩。在二期規劃中,我們將實現備份的級聯刪除功能,通過指定--force選項,支持刪除備份以及其依賴的所有備份,甚至刪除整個備份鏈。

5.2 獲取增量備份大小

目前Cinder備份的實例大小是繼承自原volume的大小,基于分塊策略備份還有Object Count(chunk 數量)的概念,但這只是顯示分成了幾個chunk,每個chunk大小不一定是一樣的,并不能根據chunk數量計算實際占用的存儲空間。備份存儲空間是我們計費系統的計量標準之一,全量備份和增量備份成本肯定是不一樣的,如果價錢一樣,則用戶并不一定樂于使用增量備份。在二期規劃中,我們將實現計算備份占用的實際存儲空間的接口。

5.3 備份到S3

很多私有云用戶考慮各種成本,不一定會部署額外用于備份的Ceph集群,也不一定需要Swift對象存儲,而更傾向于將數據備份到價格低廉、穩定可靠的AWS S3中。目前Cinder backup后端還不支持S3接口,為了滿足客戶需求,我們計劃在二期中實現S3接口,用戶可以隨時把volume數據備份到S3中。

六、總結

本文首先介紹了數據保護的幾種常用技術,指出備份是數據保護的關鍵技術之一。接下來重點介紹了cinder backup的原理,對比了基于分塊備份策略和直接導入策略。然后吐槽了我們在實踐中踩到的各種“坑”。最后分享了我們做的一些優化改進工作以及后期工作。

【本文是51CTO專欄作者“付廣平”的原創文章,如需轉載請通過51CTO獲得聯系】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-10-20 15:25:17

DockerOpenStack Cvolume

2020-05-22 09:12:46

HTTP3網絡協議

2024-05-10 11:35:22

Redis延時隊列數據庫

2025-02-06 08:24:25

AQS開發Java

2009-06-08 16:52:00

2025-02-08 08:10:00

2024-04-18 09:20:43

PostgreSQL關系型數據庫數據庫管理系統

2021-12-20 00:03:38

Webpack運行機制

2017-05-04 16:35:45

2023-10-29 16:26:27

Python動查重

2023-02-22 07:04:05

自動機原理優化實踐

2023-07-27 06:38:52

HBase大數據

2009-07-24 13:54:39

MVVM模式

2011-08-15 09:48:30

MySQL數據庫完整備份增量備份

2014-07-28 09:22:46

Linux運維磁盤

2017-09-15 08:22:17

磁盤備份設備

2022-02-15 23:55:35

磁盤F2F備份

2017-07-07 10:40:24

MySQL備份原理

2023-12-13 13:15:13

平臺開發實踐

2023-09-12 13:48:47

點贊
收藏

51CTO技術棧公眾號

欧美一区二区三区啪啪| 欧美激情一区二区三区不卡| 久久99国产精品自在自在app| 日韩高清一二三区| 黄毛片在线观看| 国产日韩成人精品| 亚洲最大的av网站| 久久久久99精品成人片我成大片| 国精一区二区| 日韩欧美国产午夜精品| 男人日女人bb视频| 麻豆系列在线观看| 91视频国产资源| 91九色单男在线观看| 黄网在线观看视频| 我不卡神马影院| 日韩精品视频在线播放| 午夜av中文字幕| 中文字幕21页在线看| 中文字幕亚洲一区二区av在线| 国产精品久久久久av福利动漫| 波多野结衣电车| 国产精品成人一区二区网站软件| 一级做a爰片久久毛片美女图片| 在线视频观看一区二区| 欧美一区国产| 性欧美疯狂xxxxbbbb| 亚洲一区二区精品在线| 日韩大片b站免费观看直播| 国产一区亚洲一区| 国产精品久久久久久网站 | 国产aa精品| 欧美性猛交xxxx黑人| 成年人视频网站免费| 最新av网站在线观看| 久久久久久久综合| 久久婷婷开心| 亚洲精品免费在线观看视频| 激情五月婷婷综合网| 国产精品91在线观看| 偷偷操不一样的久久| 激情久久久久久久| 欧美国产亚洲精品久久久8v| 久草手机视频在线观看| 日韩一区电影| 日韩在线视频导航| 亚洲色图欧美色| 精品一区二区三| 国产香蕉精品视频一区二区三区| 日韩网站在线播放| 欧洲精品一区| 日韩精品欧美国产精品忘忧草| 超碰caoprom| 国产成人tv| 亚洲精品一区二区在线观看| 日本一区二区免费视频| jizzjizzjizz欧美| 精品国产亚洲在线| 久久久久久久人妻无码中文字幕爆| 中文在线免费一区三区| 日韩欧美另类在线| 色哟哟网站在线观看| 亚洲精品a区| 精品蜜桃在线看| 一区二区三区四区影院| 国产劲爆久久| 日韩成人小视频| 久草免费资源站| 久久99精品国产自在现线| 亚洲精品美女视频| 熟女高潮一区二区三区| 日韩欧美一区免费| 久久国产精品偷| 久久亚洲AV无码| 亚洲激情国产| 国产成人av在线播放| 在线观看黄色网| 国产美女娇喘av呻吟久久| 国产91社区| 日韩亚洲视频在线观看| 亚洲国产激情av| 91免费网站视频| 国产偷倩在线播放| 色婷婷久久综合| 成人综合久久网| 中文字幕视频精品一区二区三区| 亚洲第一中文字幕在线观看| 中文字幕免费视频| 欧美jizz| 久久久久久com| 一二三区免费视频| 韩国精品一区二区| 精品欧美一区二区在线观看视频| 免费在线黄色网址| 成人欧美一区二区三区白人 | 人体私拍套图hdxxxx| 欧美男gay| 麻豆成人在线看| 中文字幕一区二区三区精品| 青青草97国产精品免费观看 | 免费av网址在线| 久久久久伊人| 亚洲福利在线观看| 手机av在线不卡| 国内精品福利| 国产精品一区二区三区毛片淫片| 丰满人妻一区二区三区四区53| 久久精品欧美一区二区三区不卡| 水蜜桃在线免费观看| 在线高清av| 欧美电影精品一区二区| 久久精品三级视频| 在线一区免费观看| 91沈先生在线观看| 国产在线网站| 亚洲国产aⅴ天堂久久| 日韩高清第一页| 伊人成综合网伊人222| 九九精品视频在线| 在线观看免费观看在线| 97超碰欧美中文字幕| 2021国产视频| 免费视频观看成人| 亚洲系列中文字幕| 男女视频免费看| 国产精品亚洲人在线观看| 亚洲精品久久久久久一区二区| f2c人成在线观看免费视频| 欧美人伦禁忌dvd放荡欲情| 欧美老熟妇乱大交xxxxx| 在线欧美一区| ts人妖另类在线| 国产欧美黑人| 欧美精品 日韩| 少妇视频在线播放| 日本成人在线视频网站| 欧美日韩国产免费一区二区三区| 福利在线导航136| 欧美一激情一区二区三区| 午夜激情福利电影| 日本欧美一区二区三区乱码| 欧美二区三区在线| 伊人久久视频| 亚洲国产另类 国产精品国产免费| 美国黄色小视频| 国产制服丝袜一区| 精品一区二区三区毛片| 国产精品成人**免费视频| 久久精品成人动漫| 夜夜爽8888| 亚洲日本在线看| 在线看免费毛片| 午夜激情久久| 成人久久久久久| 成人直播在线| 欧美一级一区二区| 久草视频在线资源站| 国产成人亚洲综合a∨猫咪| 日本黄色片一级片| 精品久久对白| 日本不卡免费高清视频| 黄色在线免费观看大全| 在线观看一区日韩| 国产精品麻豆一区| 精品一区二区免费视频| 无颜之月在线看| 99香蕉久久| 91精品91久久久久久| 三级在线播放| 欧美三级电影在线看| 国产亚洲精品久久久久久豆腐| 久久99蜜桃精品| 成人高清dvd| 久久精品国产亚洲5555| 国产成人精彩在线视频九色| 在线免费黄色| 精品噜噜噜噜久久久久久久久试看 | 精品人妻少妇一区二区| 日韩av不卡一区| 国产精品大片wwwwww| 国产在线观看免费麻豆| 亚洲成av人乱码色午夜| 丰满少妇xoxoxo视频| 国产精品欧美精品| 免费啪视频在线观看| 蘑菇福利视频一区播放| 一本一本a久久| y111111国产精品久久久| 国产成人精品免高潮在线观看| 1769在线观看| 亚洲国产精品高清久久久| 91午夜精品亚洲一区二区三区| 中文字幕在线观看一区二区| 美女扒开腿免费视频| 日韩综合小视频| 日韩欧美一级在线| 奇米亚洲欧美| 99国产高清| 日韩不卡免费高清视频| 欧美日本国产在线| yw在线观看| 精品国精品国产尤物美女| 狠狠躁夜夜躁人人爽视频| 亚洲综合视频在线| 国产精品视频在| 成人av在线资源网站| 天天干天天综合| 亚洲影音先锋| 永久免费看av| 色135综合网| 久久久久久九九九九| 国产一区精品二区| 日本在线精品视频| 丰满的护士2在线观看高清| 最好看的2019年中文视频| 日本国产在线观看| 欧美一区午夜视频在线观看| 无码人妻av一区二区三区波多野| 一区二区三区视频在线看| 欧美亚洲色综久久精品国产| 成人一区二区三区视频| 日韩av福利在线观看| 日韩av网站在线观看| 少妇无码av无码专区在线观看| 影视亚洲一区二区三区| 天天综合狠狠精品| 蜜桃一区二区三区| 精品国产乱码久久久久| 99精品国产高清一区二区麻豆| 国产在线视频不卡| 成人综合网站| 国产精品激情av电影在线观看| 成人女同在线观看| 欧美老女人在线视频| 欧美性videos| 在线视频精品一| 欧美777四色影视在线 | 国产三级电影在线观看| 日韩精品视频三区| 污视频网站在线播放| 亚洲精品一区二区三区四区高清| 精品毛片一区二区三区| 91精品国产乱码久久蜜臀| 国产精品久久久久久69| 91.com视频| 97超碰资源站| 欧美喷潮久久久xxxxx| 中文字幕在线观看欧美| 欧美日韩一卡二卡三卡 | 欧美一区中文字幕| 国产成人精品一区二三区四区五区| 91.麻豆视频| av中文字幕免费在线观看| 日韩丝袜美女视频| 亚洲精品国产suv一区| 精品国产乱码久久久久久影片| 亚洲精品97久久中文字幕| 精品国产欧美一区二区| 日本国产在线观看| 日韩精品丝袜在线| 黄色av网址在线免费观看| 伊人成人开心激情综合网| 国产一二三区在线| 日韩在线中文字幕| 性欧美ⅴideo另类hd| 国内精品小视频| 桃色av一区二区| 国产精品高潮呻吟视频| 久久精品97| 风间由美久久久| 日韩电影不卡一区| 日韩美女一区| 香蕉久久网站| 国产玉足脚交久久欧美| 久久国产精品毛片| 亚洲最大综合网| 国产一区二区三区美女| 91九色蝌蚪porny| www国产成人免费观看视频 深夜成人网| 免费看黄色的视频| 中文字幕日本乱码精品影院| 欧美精品乱码视频一二专区| 精品国产乱码久久久久久虫虫漫画 | 欧洲美女亚洲激情| 大胆亚洲人体视频| 国产又粗又猛又爽又黄av| 亚洲欧美日韩国产手机在线| www.天天色| 在线观看免费成人| 亚洲精品国产一区二| 国产亚洲精品久久久久动| 自拍亚洲图区| 青青久久aⅴ北条麻妃| 999久久久国产999久久久| 精品视频一区在线| 99国产**精品****| 无码精品a∨在线观看中文| 另类欧美日韩国产在线| 中文字幕在线视频播放| 国产精品久久久久久久久快鸭 | 国产在线高清精品| 精品在线网站观看| 亚洲人成人77777线观看| 亚洲精品偷拍| 视频免费1区二区三区| 91蜜桃视频在线| 欧美成人精品欧美一| 在线观看国产日韩| 少妇人妻精品一区二区三区| 日韩亚洲精品视频| 国产精品极品美女在线观看| 91传媒视频免费| 色综合五月天| 国产男女在线观看| 国产成人精品一区二区三区网站观看| 免费观看av网站| 性做久久久久久免费观看欧美| 国产美女三级无套内谢| 亚洲视频日韩精品| 国产99在线观看| 99精品99久久久久久宅男| 日韩欧美精品一区| 少妇黄色一级片| 久久免费美女视频| 日本在线视频中文字幕| 日韩女优av电影| 黄色av电影在线观看| 国产精品久久久久9999| 国产va免费精品观看精品视频| 青青草国产免费| 国产不卡视频一区| 日韩在线观看视频一区二区| 欧美日韩精品欧美日韩精品一综合| 青青色在线视频| 国产91精品高潮白浆喷水| 91国内精品白嫩初高生| 亚洲国产一二三精品无码 | 欧美日韩亚洲精品内裤| 亚洲AV无码一区二区三区性| 精品国产自在精品国产浪潮| 成人看片毛片免费播放器| 欧美亚洲另类久久综合| 玖玖在线精品| 欧美大波大乳巨大乳| 日本乱人伦aⅴ精品| 成人免费在线电影| 国产精品揄拍一区二区| 日韩一区三区| 最新免费av网址| 亚洲日本电影在线| 99热这里只有精品5| 九色成人免费视频| 97久久综合区小说区图片区| 黄色三级中文字幕| 成人国产免费视频| 美日韩一二三区| 日韩久久免费电影| 亚洲欧美在线成人| 亚洲第一导航| 精东粉嫩av免费一区二区三区| 三级全黄做爰视频| 日韩免费高清视频| 成人免费图片免费观看| 久久人人爽爽人人爽人人片av| 免费亚洲一区| 天美传媒免费在线观看| 欧美久久久一区| 蜜臀av在线播放| 久久精品午夜一区二区福利| 久久午夜av| 多男操一女视频| 欧美大片拔萝卜| 色综合亚洲图丝熟| 日韩理论片在线观看| 狠狠色丁香久久婷婷综| 国产一级aa大片毛片| 亚洲欧美国产一区二区三区 | av在线不卡一区| 国产精品毛片在线| 亚洲毛片亚洲毛片亚洲毛片| 在线成人免费视频| 91福利在线免费| 日韩国产高清一区| 国产福利一区二区三区| 国产精品乱子伦| 日韩有码在线电影| 成人资源在线播放| 超碰在线人人爱| 亚洲综合久久久| 国产爆初菊在线观看免费视频网站| 亚洲精品日产aⅴ| 亚洲视频播放| 99鲁鲁精品一区二区三区| 日韩av综合网| 高清一区二区中文字幕| 熟女性饥渴一区二区三区| 成人欧美一区二区三区黑人麻豆 | 亚洲欧美一二三区| 欧美日韩国产二区| 成人vr资源|