国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

TiDB 工具 | 備份的 “算子下推”:BR 簡(jiǎn)介

共 7657字,需瀏覽 16分鐘

 ·

2021-12-17 15:11

BR 選擇了在 Transaction KV 層面進(jìn)行掃描來(lái)實(shí)現(xiàn)備份,這樣,備份的核心便是分布在多個(gè) TiKV 節(jié)點(diǎn)上的 MVCC Scan:簡(jiǎn)單,粗暴,但是有效,它生來(lái)就繼承了 TiKV 的諸多優(yōu)勢(shì):分布式、利于橫向拓展、靈活(可以備份任意范圍、未 GC 的任意版本的數(shù)據(jù))等等優(yōu)點(diǎn)。


相較于從前只能使用 mydumper 進(jìn)行 SQL 層的備份,BR 能夠更加高效地備份和恢復(fù):它取消了 SQL 層的開(kāi)銷(xiāo),同時(shí)支持備份索引,而且所有備份都是已經(jīng)排序的 SST 文件,以此大大加速了恢復(fù)。


BR 的實(shí)力在之前的文章(https://pingcap.com/zh/blog/cluster-data-security-backup)中已經(jīng)展示過(guò)了,本文將會(huì)詳細(xì)描述 BR 備份側(cè)的具體實(shí)現(xiàn):簡(jiǎn)單來(lái)講,BR 就是備份的 “算子下推”:通過(guò) gRPC 接口,將任務(wù)下發(fā)給 TiKV,然后讓 TiKV 自己將數(shù)據(jù)轉(zhuǎn)儲(chǔ)到外部存儲(chǔ)中。


BR 的基本流程

接口

為了區(qū)別于一般的 MVCC Scan 請(qǐng)求,TiKV 提供一個(gè)叫做?Backup的接口,這個(gè)接口與一般的讀請(qǐng)求不同——它不會(huì)返回?cái)?shù)據(jù)給客戶(hù)端,而是直接將讀到的數(shù)據(jù)存儲(chǔ)到指定的存儲(chǔ)器(External Stroage)中:
service?Backup?{
????//?收到?backup?的?TiKV,將會(huì)將?Request?指定范圍中,所有自身為?leader
????//?的 region 備份,并流式地返回給客戶(hù)端(每個(gè) region 對(duì)應(yīng)流中的一個(gè) item)。
????rpc?backup(BackupRequest)?returns?(stream?BackupResponse)?{}
}

// NOTE:隱藏了一些不重要的 field 。
message?BackupRequest?{
????//?備份的范圍,[start_key, end_key)。
????bytes?start_key?=?2;
????bytes?end_key?=?3;
????//?備份的 MVCC 版本。
????uint64?start_version?=?4;
????uint64?end_version?=?5;
????
????//?限流接口,為了確保和恢復(fù)時(shí)候的一致性,限流限制保存?zhèn)浞菸募碾A段的速度。
????uint64?rate_limit?=?7;
????
????//?備份的目標(biāo)存儲(chǔ)。
????StorageBackend?storage_backend?=?9;
????//?備份的壓縮?--?這是一個(gè)用 CPU 資源換取 I/O 帶寬的優(yōu)化。
????CompressionType?compression_type?=?12;
????int32?compression_level?=?13;
????//?備份支持加密。
????CipherInfo?cipher_info?=?14;
}

message?BackupResponse?{
????Error?error?=?1;
????//?備份的請(qǐng)求將會(huì)返回多次,每次都會(huì)返回一個(gè)已經(jīng)完成的子范圍。
????//?利用這些信息可以統(tǒng)計(jì)備份進(jìn)度。
????bytes?start_key?=?2;
????bytes?end_key?=?3;
????//?返回該范圍備份文件的列表,用于恢復(fù)的時(shí)候追蹤。
????repeated?File?files?=?4;
}

客戶(hù)端

BR 客戶(hù)端會(huì)借助 TiDB 的接口,根據(jù)用戶(hù)指定需要備份的庫(kù)和表,計(jì)算出來(lái)需要備份的范圍(ranges)。計(jì)算的依據(jù)是:

  1. 依據(jù)每個(gè) table 的所有 data key 生成 range。(所有帶有 t{table_id}_r 前綴的 Key)

  2. 依據(jù)每個(gè) index 的所有 index key 生成 range。(所有帶有 t{table_id}_i{index_id}?前綴的 Key)

  3. 如果 table 存在 partition(這意味著,它可能有多個(gè) table ID),對(duì)于每個(gè) partition,按照上述規(guī)則生成 range。


為了獲得最大的并行度,BR 客戶(hù)端會(huì)并行地所有 TiKV 發(fā)送這些 Range 上的備份請(qǐng)求。

當(dāng)然,備份不可能一帆風(fēng)順。我們?cè)趥浞莸臅r(shí)候不可避免地會(huì)遇到問(wèn)題:例如網(wǎng)絡(luò)錯(cuò)誤,或者觸發(fā)了 TiKV 的限流措施(Server is Busy),或者 Key is Locked,這時(shí)候,我們必須縮小這些 range,重新發(fā)送請(qǐng)求(否則,我們就要重復(fù)一遍之前已經(jīng)做過(guò)的工作)。

在失敗之后,選擇合適的 range 來(lái)重發(fā)請(qǐng)求的過(guò)程,在 BR 中被稱(chēng)為“細(xì)粒度備份(fine-grained backup)”,具體而言:

  1. 在之前的“粗粒度備份”中,BR 客戶(hù)端每收到一個(gè) BackupResponse 就會(huì)將其中的 [start_key, end_key)?作為一個(gè) range 存入一顆區(qū)間樹(shù)中(你可以把它想象成一個(gè)簡(jiǎn)單的 BTreeSet<(Vec, Vec)>)。


  2. “粗粒度備份” 遇到任何可重試錯(cuò)誤都會(huì)忽略掉,只是相應(yīng)的 range 不會(huì)存入這顆區(qū)間樹(shù)中,因此樹(shù)中會(huì)留下一個(gè) “空洞”,這兩步的偽代碼如下。

    func?Backup(tree?RangeTree)?{
    ????//?...?
    ????for?_,?resp?:=?range?responses?{
    ????????if?resp.Success?{
    ????????????tree.Insert(resp.StartKey,?resp.EndKey)??
    ????????}
    ????}
    }

    //?An?example:?
    //?When?backing?up?the?ange?[1,?5).
    //?[1,?2),?[3,?4)?and?[4,?5)?successed,?and?[2,?3)?failed:
    //?The?Tree?would?be?like:?{?[1,?2),?[3,?4),?[4,?5)?},?
    //?and?the?range?[2,?3)?became?a?"hole"?in?it.
    //?
    //?Given?the?range?tree?is?sorted,?it?would?be?easy?to?
    //?find?all?holes?in?O(n)?time,?where?n?is?the?number?of?ranges.
  3. 在 “粗粒度備份” 結(jié)束之后,我們遍歷這顆區(qū)間樹(shù),找到其中所有 “空洞”,并行地進(jìn)行 “細(xì)粒度備份”:
  • 找到包含該空洞的所有 region。

  • 對(duì)他們的 leader 發(fā)起 region 相應(yīng)范圍的 Backup RPC。

  • 成功之后,將對(duì)應(yīng)的 range 放入?yún)^(qū)間樹(shù)中。


????? 4. 在一輪 “細(xì)粒度備份” 結(jié)束后,如果區(qū)間樹(shù)中還有空洞,則回到 (3),在超過(guò)一定次數(shù)的重試失敗之后,報(bào)錯(cuò)并退出。


在上述 “備份” 流程完成之后,BR 會(huì)利用 Coprocessor 的接口,向 TiKV 請(qǐng)求執(zhí)行用戶(hù)所指定表的 checksum。

這個(gè) checksum 會(huì)在恢復(fù)的時(shí)候用作參考,同時(shí)也會(huì)和 TiKV 在備份期間生成的逐文件的 checksum 進(jìn)行對(duì)比,這個(gè)比對(duì)的過(guò)程叫做 “fast checksum”。

在 “備份” 的過(guò)程中,BR 會(huì)通過(guò) TiDB 的接口收集備份的表結(jié)構(gòu)、備份的時(shí)間戳、生成的備份文件等信息,儲(chǔ)存到一個(gè)? “backupmeta” 中,這個(gè)是恢復(fù)時(shí)候的重要參考。

TiKV

為了實(shí)現(xiàn)資源隔離,減少資源搶占,backup 相關(guān)的任務(wù)都運(yùn)行在一個(gè)單獨(dú)的線(xiàn)程池里面。這個(gè)線(xiàn)程池中的線(xiàn)程叫做 “bkwkr”(“backup worker” 極其抽象的縮寫(xiě))。

在收到 gRPC 備份的請(qǐng)求之后,這個(gè)BackupRequest會(huì)被轉(zhuǎn)化為一個(gè)Task。


而后,TiKV 會(huì)利用Task中的start_keyend_key生成一個(gè)叫做 “Progress” 的結(jié)構(gòu):它將會(huì)把Task中龐大的范圍劃分為多個(gè)子范圍,通過(guò):
  1. 掃描范圍內(nèi)的 Region。
  2. 對(duì)于其中當(dāng)前 TiKV 角色為 Leader 的 Region,將該 Region 的范圍作為 Backup 的子任務(wù)下發(fā)。


Progress提供的接口是一個(gè)使用 “拉模型” 的接口:forward隨后,TiKV 創(chuàng)建的各個(gè) Backup Worker 將會(huì)去并行地調(diào)用這個(gè)接口,獲得一組待備份的 Region,然后執(zhí)行以下三個(gè)步驟:

  1. 對(duì)于這些 Region,Backup Worker 將會(huì)通過(guò)?RaftKV 接口,進(jìn)行一次 Raft 的讀流程,最終獲得對(duì)應(yīng) Region 在 Backup TS 的一個(gè) Snapshot。(Get Snapshot)

  2. 對(duì)于這個(gè) Snapshot,Backup Worker 會(huì)通過(guò) MVCC Read 的流程去掃描 backup_ts?的一致版本。這里我們會(huì)掃描出 Percolator 的事務(wù),為了恢復(fù)方便,我們會(huì)準(zhǔn)備 “default” 和 “write” 兩個(gè)臨時(shí)緩沖區(qū),分別對(duì)應(yīng) TiKV Percolator 實(shí)現(xiàn)中的 Default CF 和 Write CF。(Scan)

  3. 然后,我們會(huì)先將掃描出來(lái)的事務(wù)中兩個(gè) CF 的 Raw Key 刷入對(duì)應(yīng)緩沖區(qū)中,在整個(gè) Region 備份完成(或者有些 Region 實(shí)在過(guò)大,那么會(huì)在途中切分備份文件)之后,再將這兩個(gè)文件存儲(chǔ)到外部存儲(chǔ)中,記錄它們對(duì)應(yīng)的范圍和大小等等,最后返回一個(gè) BackupResponse?給 BR。(Save)


為了保證文件名的唯一性,備份的文件名會(huì)包括當(dāng)前 TiKV 的 store ID、備份的 region ID、start key 的哈希、CF 名稱(chēng)。

備份文件使用 RocksDB 的 Block Based SST 格式:它的優(yōu)勢(shì)是,原生支持文件級(jí)別的 checksum 和壓縮,同時(shí)具備可以在恢復(fù)的時(shí)候快速被 ingest 的潛力。

外部存儲(chǔ)是為了適配多種備份目標(biāo)而存在的通用儲(chǔ)存抽象:有些類(lèi)似于 Linux 中的 VFS,不過(guò)簡(jiǎn)化了非常多:僅僅支持簡(jiǎn)單的保存和下載整個(gè)文件的操作。它目前對(duì)主流的云盤(pán)都做了適配,并且支持以 URL 的形式序列化和反序列化。例如,使用s3://some-bucket/some-folder,可以指定備份到 S3 云盤(pán)上的some-bucket之下的some-folder目錄中。

BR 的挑戰(zhàn)和優(yōu)化

通過(guò)以上的基本流程,BR 的基本鏈路已經(jīng)可以跑通了:類(lèi)似于算子下推,BR 將備份任務(wù)下推到了 TiKV,這樣可以合理利用 TiKV 的資源,實(shí)現(xiàn)分布式備份的效果。

在這個(gè)過(guò)程中,我們遇到了許多挑戰(zhàn),在這一節(jié),我們來(lái)談?wù)勥@些挑戰(zhàn)。

BackupMeta 和 OOM

前文中提到,BackupMeta 儲(chǔ)存了備份的所有元信息:包括表結(jié)構(gòu)、所有備份文件的索引等等。想象一下你有一個(gè)足夠大的集群:比如說(shuō),十萬(wàn)張表,總共可能有數(shù)十 TB 的數(shù)據(jù),每張表可能還有若干索引。

如此最終可能產(chǎn)生數(shù)百萬(wàn)的文件:在這個(gè)時(shí)候,BackupMeta 可能會(huì)達(dá)到數(shù) GB 之大;另一方面,由于 protocol buffer 的特性,我們可能不得不讀出整個(gè)文件才能將其序列化為 Go 語(yǔ)言的對(duì)象,由此峰值內(nèi)存占用又多一倍。在一些極端環(huán)境下,會(huì)存在 OOM 的可能性。

為了緩解這個(gè)問(wèn)題,我們?cè)O(shè)計(jì)了一種分層的 BackupMeta 格式,簡(jiǎn)單來(lái)講,就是將 BackupMeta 拆分成索引文件和數(shù)據(jù)文件兩部分,類(lèi)似于 B+ 樹(shù)的結(jié)構(gòu):
具體來(lái)講,我們會(huì)在 BackupMeta 中加上這些 Fields,分別指向?qū)?yīng)的 “B+ 樹(shù)” 的根節(jié)點(diǎn):
message?BackupMeta?{
????//?Some?fields?omitted...
????//?An?index?to?files?contains?data?files.
????MetaFile?file_index?=?13;
????//?An?index?to?files?contains?Schemas.
????MetaFile?schema_index?=?14;
????//?An?index?to?files?contains?RawRanges.
????MetaFile?raw_range_index?=?15;
????//?An?index?to?files?contains?DDLs.
????MetaFile?ddl_indexes?=?16;
}
MetaFile 就是這顆 “B+ 樹(shù)” 的節(jié)點(diǎn):
//?MetaFile?describes?a?multi-level?index?of?data?used?in?backup.
message?MetaFile?{
????//?A?set?of?files?that?contains?a?MetaFile.
????//?It?is?used?as?a?multi-level?index.
????repeated?File?meta_files?=?1;
????
????//?A?set?of?files?that?contains?user?data.
????repeated?File?data_files?=?2;
????//?A?set?of?files?that?contains?Schemas.
????repeated?Schema?schemas?=?3;
????//?A?set?of?files?that?contains?RawRanges.
????repeated?RawRange?raw_ranges?=?4;
????//?A?set?of?files?that?contains?DDLs.
????repeated?bytes?ddls?=?5;
}
它可能有兩種形態(tài):一是承載著對(duì)應(yīng)數(shù)據(jù)的 “葉子節(jié)點(diǎn)”(后四個(gè) field 被填上相應(yīng)的數(shù)據(jù)),也可以通過(guò)?meta_files將自身指向下一個(gè)節(jié)點(diǎn):File是一個(gè)到外部存儲(chǔ)中其他文件的引用,包含文件名等等基礎(chǔ)信息。

目前的實(shí)現(xiàn)中,為了回避真正實(shí)現(xiàn)類(lèi)似 B 樹(shù)的分裂、合并操作的復(fù)雜性,我們僅僅使用了一級(jí)索引,將的表結(jié)構(gòu)和文件的元數(shù)據(jù)分別存儲(chǔ)到一個(gè)個(gè) 128M 的小文件中,如此已經(jīng)足夠回避 BackupMeta 帶來(lái)的 OOM 問(wèn)題了。

GC, GC never changes

在備份掃描的整個(gè)過(guò)程中,因?yàn)闀r(shí)間跨度較長(zhǎng),必然會(huì)受到 GC 的影響。

不僅僅是 BR,別的生態(tài)工具也會(huì)遇到 GC 的問(wèn)題:例如,TiCDC 需要增量掃描,如果初始版本已經(jīng)被 GC 掉,那么就無(wú)法同步一致的數(shù)據(jù)。

過(guò)去我們的解決方案一般是讓用戶(hù)手動(dòng)調(diào)大 GC Lifetime,但是這往往會(huì)造成 “初見(jiàn)殺” 的效果:用戶(hù)開(kāi)開(kāi)心心備份,然后去做其他事情,幾個(gè)小時(shí)后發(fā)現(xiàn)備份因?yàn)?GC 而失敗了……

這會(huì)非常影響用戶(hù)的心情:為了讓用戶(hù)能更加開(kāi)心地使用各種生態(tài)工具,PD 提供了一個(gè)叫做 “Service GC Safepoint” 的功能。各個(gè)服務(wù)可以通過(guò) PD 上的接口,設(shè)置一個(gè) “Safepoint”,TiDB 會(huì)保證在 Safepoint 指定的時(shí)間點(diǎn)之后,所有歷史版本都不會(huì)被 GC。為了防止 BR 在意外退出之后導(dǎo)致集群無(wú)法正常 GC,這個(gè) Safepoint 還會(huì)存在一個(gè) TTL:在指定時(shí)間之后若是沒(méi)有刷新,則 PD 會(huì)移除這個(gè) Service Safe Point。

對(duì)于 BR 而言,只需要將這個(gè) Safepoint 設(shè)置為 Backup TS 即可,作為參考,這個(gè) Safepoint 會(huì)被命名為 “br-”,并且有五分鐘的 TTL。

備份壓縮

在全速備份的時(shí)候,備份的流量可能相當(dāng)大:具體可以看看開(kāi)頭 “秀肌肉” 文章相關(guān)的部分。

如果你愿意使用足夠多的核心去備份,那么可能很快就會(huì)到達(dá)網(wǎng)卡的瓶頸(例如,如果不經(jīng)壓縮,千兆網(wǎng)卡大約只需要 4 個(gè)核心就會(huì)被打滿(mǎn)。),為了避免網(wǎng)卡成為瓶頸,我們?cè)趥浞莸臅r(shí)候引入了壓縮。

我們復(fù)用了 RocksDB Block Based Table Format 中提供的壓縮功能:默認(rèn)會(huì)使用 zstd 壓縮。壓縮會(huì)增大 CPU 的占用率,但是可以減少網(wǎng)卡的負(fù)載,在網(wǎng)卡成為瓶頸的時(shí)候,可以顯著提升備份的速度。

限流與隔離

為了減少對(duì)其他任務(wù)的影響,如前文所說(shuō),所有的備份請(qǐng)求都會(huì)在單獨(dú)的線(xiàn)程池中執(zhí)行。

但是即便如此,如果備份消耗了太多的 CPU,不可避免地會(huì)對(duì)集群中其它負(fù)載造成影響:主要的原因是 BR 會(huì)占用大量 CPU,影響其它任務(wù)的調(diào)度;另一方面則是 BR 會(huì)大量讀盤(pán),影響寫(xiě)任務(wù)刷盤(pán)的速度。

為了減少資源的使用,BR 提供了一個(gè)限流機(jī)制。當(dāng)用戶(hù)帶有--ratelimit參數(shù)啟動(dòng) BR 的時(shí)候,TiKV 側(cè)的第三步 “Save”,將會(huì)被限流,與此同時(shí)也會(huì)限制之前步驟的流量。


這里需要注意一個(gè)點(diǎn):備份數(shù)據(jù)的大小往往會(huì)遠(yuǎn)遠(yuǎn)小于集群的實(shí)際空間占用。原因是備份只會(huì)備份單副本、單 MVCC 版本的數(shù)據(jù)。通過(guò)ratelimit限流施加于 Save 階段,因此是限制寫(xiě)備份數(shù)據(jù)的速度。

在 “服務(wù)端” 側(cè),也可以通過(guò)調(diào)節(jié)線(xiàn)程池的大小來(lái)限流,這個(gè)參數(shù)叫做?backup.num-thread,考慮到我們?cè)试S用戶(hù)側(cè)限流,它的默認(rèn)值非常高:是全部 CPU 的 75%。如果需要在服務(wù)側(cè)進(jìn)行更加徹底的限流,可以修改這個(gè)參數(shù)。作為參考,一塊 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz CPU 每個(gè)核心大概每秒能生成 10M 經(jīng) zstd 壓縮的 SST 文件。

總結(jié)

通過(guò) Service Safe Point,我們解決了手動(dòng)調(diào)節(jié) GC 帶來(lái)的 “難用” 的問(wèn)題。

通過(guò)新設(shè)計(jì)的 BackupMeta,我們解決了海量表場(chǎng)景的 OOM 問(wèn)題。

通過(guò)備份壓縮、限流等措施,我們讓 BR 對(duì)集群影響更小、速度更快(即便二者可能無(wú)法兼得)。

總體上而言,BR 是在 “物理備份” 和 “邏輯備份” 之間的 “第三條路”:相對(duì)于 mydumper 或者 dumpling 等工具,它消解了 SQL 層的額外代價(jià);相對(duì)于在分布式系統(tǒng)中尋找物理層的一致性快照,它易于實(shí)現(xiàn)且更加靈巧。對(duì)于目前階段而言,是適宜于 TiDB 的容災(zāi)備份解決方案。


??Tip:上文劃線(xiàn)部分均有跳轉(zhuǎn),由于微信外鏈限制,大家可以點(diǎn)擊尾部【閱讀原文】查看原文

瀏覽 61
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国精品伦一区一区三区有限公司| 999reav| 欧美性猛交XXXX乱大交蜜桃| 亚洲精品999| 日韩大鸡巴| 天天干天天日天天干天天日| 69av视频在线观看| 日本高清视频网站网wwwwww| 成人777| 国产精品91视频| 91人妻人人| 3d动漫精品一区二区三区在线观看 | 亚洲三级av| 热久久最新地址| a三级片| 专业操美女视频网站| 无码精品ThePorn| 一级理论片| 无码人妻精品一区二区蜜桃91| 国产老女人操逼| jizz免费在线观看| 91天天操| 操B图| 欧美精品欧美精品系列| yy午夜福利| 国产一级A片| 强伦轩一区二区三区四区播放方式| 午夜看片| 成人免费黄色| 欧美日韩免费一区二区三区| 免费人成网站| 91夜夜| 精品国内自产拍在线观看视频 | 国产a毛一级,a毛一级| 成人AV在线一区二区| 洞av | 综合激情av| 日本一本视频| 国产在线成人视频| 中文字幕免费久久| 丰满人妻一区二区三区视频在线不卡| 99热久| 激情91| 欧美一级一级| 国产人人看| 久久精品国产99精品国产亚洲性色| 日本一区二区三区免费观看| 国产黄色视频网站在线观看| 亚州在线中文字幕经典a| 青娱乐| 亚洲AV无码乱码国产精品黑人| www.有码99| 一区二区中文| 亚洲综合免费观看高清完整版在线观| 日本色影院| 精品日韩在线视频| 亚洲中文视频免费| 丰满少妇一级片| 国产色黄视频| 日韩三级片av| 98在线++传媒麻豆的视频| 精品无码一区二区| 日韩女人性爱| 99精品在线| 亚洲综合区| 久久久成人网| av无码在线观看| 蜜桃精品视频| 婷婷射| 日韩精品第一页| 99热18| 蜜桃传媒一区二区亚洲AV| 华女与黑人91A∨| 69人妻人人澡人人爽人人精品| 国产精品av在线| 久久精品国产99精品国产亚洲性色| 99久久久国产精品无码| 波多野结衣av在线播放| 嗯啊av| 成人网站av| 免费看v片| 玖玖大香蕉| 日韩成人A片| 免费a视频在线观看| 欧洲成人免费视频| 97人人爱| www.91久久| 黄色成人网站在线免费观看| 伊人亚洲| 大香蕉久久视频| 丁香婷婷色五月| 欧美激情视频一区二区三区不卡 | 伊人精品A片一区二区三区| 国产18毛片18水多精品| 欧美狠狠撸| 亚洲无套内射| 国产精品1区2区| 日本三级中文字幕| 亚洲超碰在线| 日本免费黄色片| 亚洲无码一| 亚洲永久| 午夜精品一区二区三区在线视频| 欧美韩日高清精彩视频| 怍爱视频| 国产一级a毛片| 免费看黄色大全| 日韩欧美中文字幕视频| 久草综合网| 在线免费中文字幕| 无码A级片| av第一页| 国产一区二区三区在线视频| 久久久久久久亚洲| 91.xxxxx| 爱操AV| 炮友露脸青楼传媒刘颖儿| 特级丰满少妇免费观看| 婷婷激情五月天丁香| 99久久人妻精品免费二区| A∨无码| 在线观看操逼| 99视频在线精品| 九一国产| 嫩BBB揍BBB揍BBB| 国产精品黄色视频| 影音先锋AV啪啪资源| 五月久久婷婷| 日本高清一区二区高清免费视频 | 广州媚黑妇系列视频在线| 欧美群交videotv群交| 大地影视中文第三页最新在线观看| 亚洲欧美在线免费观看| 亚洲色在线观看| 黄色美女视频网站| 欧美色图网站| 欧美日韩国产尤物主播精品| 欧美作爱| 欧美一区二区三区四| 亚洲有码在线视频| 喷水视频在线观看| 亚洲成人色色| 婷婷五月在线观看| 肏屄网站| 国产免费成人| 人妻丰满熟妇| 色先锋资源站| 亚洲区一| 欧美丰满老熟妇XXXXX性| 蜜臀999| 日韩一级二级| 亚洲啪啪网站| 日韩在线综合网| 影音先锋男人你懂的| 天天操天天射天天日| 一级欧美一级日韩片| 亚洲成人视频在线| 成人网在线视频| caobi999| 亚洲香蕉视频网站| 国产精品久久免费| 婷婷五月一区| 中文字幕日韩在线观看| 波多野结衣网站| 天天操天天操天天操天天| 一区四区视频| 亚洲精选一区二区三区| 国产操逼视频网站| 国产午夜成人福利在线| 成人夜间视频| 欧美综合区| 91麻豆视频在线观看| 骚妇大战黑人15P| 久久人人爱| 2025精品偷拍视频| 亚洲欧美日韩无码| 日韩一区二区无码视频| 成人在线毛片| 黄片视频在线免费观看| 人人妻人人摸| 伊人久久大香色综合久久| 996热re视频精品视频| 少妇搡BBBB搡BBB搡HD(| 特级毛片WWW| 内射少妇18| 免费一级婬片AA片观看| 国产精品在线免费| 99er在线| 国产精品卡一卡二| 亚洲视屏| 丁香六月婷婷激情| 天天操天天日天天操| 国产亚洲欧美精品综合在线| 91人妻人人爽| 韩国GOGOGO高清| 无码人妻丰满熟妇啪啪| 九九韩剧网最新电视剧免费观看 | 日韩高清无码免费| 欧美干综合| 国产1区2区3区中文字幕| 被黑人猛躁10次高潮视频| 俺去日| 91精品国产成人www| 天堂视频在线观看亚洲美女| 久久久久蜜桃| 精品人妻一区二区| 黄色带亚州| 五月天婷婷在线视频| 国产精品免费观看久久久久久久久| 天天干天天日天天| 国产操逼网| www.射| 午夜啪啪视频| 另类罕见稀奇videos| 国产香蕉视频| 精品玖玖| 久久九九综合| 在线观看老湿视频福利| 成人做爰100部免费网站| 中文字幕三级片| 亚州一级二级| 国产精品久久久久久婷婷天堂| 97人妻精品一区二区三区图片 | 俺也来最新色视频| 黄片网站在线看| 国产精品秘久久久久久免费播放| 久久精品视频在线免费观看| 亚洲第一综合| 97人妻一区二区三区| 国产又爽又黄免费视频免费观看| 91伊人久热精品| 久激情内射婷内射蜜桃欧美一级| 超碰手机在线| 亚洲欧美精品AAAAAA片| 亚洲一区久久| 影音先锋成人资源网| 国产黄色电影| 88av在线播放| 第四色激情网| 人人操人人射| xxxxx无码| 一区二区无码免费| 日韩精品区| 探花熟女| 亚洲熟女av中文字幕| 国产成人精品无码免费| 国产三级高清无码| 欧美一级A片在线观看| 性久久久久久久| 99成人乱码一区二区三区在线| 中韩日美免费看的电影| 日韩精品视频一区二区| 加勒比DVD手机在线播放观看视频 日韩精品一区二区三区四区蜜桃视频 | 日韩三级片网址| 国产第一精品| 黄色片网站在线观看| 亚洲精品鲁一鲁一区二区三区| 欧美精产国品一二三区别| 国产欧美性爱| 国外亚洲成AV人片在线观看| 亚洲日韩在线中文字幕| 亚洲无码中文字幕在线播放| 逼特逼视频网站| 色悠悠久久综合| 豆花视频成人网站入口免费观看| 久久无码免费| 成人理伦A级A片在线论坛| 国产又大又粗又长| 欧美日本一区二区三区| 2014av天堂网| 91视频播放| 五月天婷婷小说| 九色PORN视频成人蝌蚪自拍| 成人伊人网| 高清无码视频免费看| 国产一级片视频| 中文字幕高清免费看| 在线观看免费黄网站| 亚洲做爱视频| 18禁网站在线看| 免费看黄的网站在线观看| 你懂的视频在线观看| 911国产视频| www尤物| 欧美视频一区| 亚洲精品国产精品国自产A片同性 丰满人妻一区二区三区四区不卡 国产1级a毛a毛1级a毛1级 | 翔田千里高潮90分钟| 西西4444大胆无码视频| 在线无码免费观看| 黄色成人网站大全| 五月天成人网址| 国产一级A片| 九九热这里有精品| 欧美9999| 国产午夜成人视频| 国产午夜成人| 搡BBBB搡BBB搡五十粉嫩| 色网站操逼| 国产免费黄色电影| 在线观看免费人成视频| 国产精品无码天天爽视频| 欧美男女日逼视频| 性爱AV天堂| 日韩天天操| AV无码一区| 五月婷婷亚洲| JIZZJIZZ国产精品喷水| 日逼欧美| 色999在线播放视频| 国产精品不卡在线| 亚洲一区二区视频| 狼色视频| 无码视频一区| re久久| 久大香蕉| 999热这里只有精品| 免费色网站| 91激情电影| 在线观看视频亚洲| 欧美色小说| 18啪啪网站| 一起操在线观看| 91久久人澡人妻人人澡人人爽 | 国产精品久久久久久久免牛肉蒲| 婷婷五月开心五月| 无码a区天堂| 成人无码观看| 水蜜桃在线视频| 免费伊人大香蕉| 天堂成人| 爱搞搞搞搞| 热99| 人人妻人人爱人人| 国产精品性爱视频| 亚洲欧美日韩成人| 自拍偷拍在线视频| 欧美性受XXXX黑人XYX性爽一| 波多野结衣av在线播放| 成人性生交大片免费看小芳| 国产操操操| av资源播放| 亚洲内射视频| 97视频福利| 无码插逼| 亚洲视频在线观看播放| 一级特黄大片色| 色婷婷五月激情| 日韩午夜福利| 日本www视频| 久久伊人精品| 精品女同一区二区三区四区外站在线| 亚洲精品在线看| 日本家庭乱伦视频| 国产成人大片| 黄一区二区| 天天添天天干| 99天堂网| 狠狠撸狠狠干| 大香蕉草久| 国产欧美日韩在线| 日韩欧美中文字幕公布| 狠狠干综合| 亚洲激情无码视频| 操噜噜噜噜噜插| 亚洲国产成人91精品| 国产精品怡红院有限公司| 9l农村站街老熟女| 久久久中文| 国产在线拍偷自揄拍无码一区二区| 亚洲俺去了| 国产九色| 欧美视频自拍| 午夜福利院| 婷婷亚洲精品| 操逼视频网| 翔田千里在线播放| 欧美91熟| 欧美亚洲一区二区三区| 52妺嘿嘿午夜福利在线| 日韩一级免费毛片| 麻豆国产91| 中文字幕在线一区| 大香蕉免费网站| 中文字幕高清| 无套内射学生妹去看片| 超碰a片| 三级片麻豆| 国产一级婬乱片免费| 性v天堂| 激情综合网站| 亚洲AV在线看| 热99re69精品8在线播放| 日韩性爱网址| 欧美黄色性爱视频| 羽月希奶水饱胀在线播放| 91熟女视频| 超碰性爱| 国产一区二区免费在线观看| 亚洲A片在线观看| 天堂8在线视频| 天天色播| 麻豆AV无码| 先锋久久资源| 久久美女视频| 午夜视频在线看| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 91www| 另类老妇奶性生BBwBBw偷拍| 成人三级在线| 精品无码人妻一区二区媚黑 | 少妇久久久久久久久久| 欧美在线播放| 欧美A片在线| 91在线成人视频| 久草视频免费| 亚洲最新无码| 日韩精品一区二区三区四在线播放| 日本成人一区| 亚洲无码在线精品| 国产精品无码一区二区三区免费| 日韩不卡一区| 午夜老湿机| 香蕉视频色| 国产av一区二区三区四区| 免费成人在线网站| 91精品人妻一区二| 亚洲色图1| 最新精品视频| 日韩久久免费视频| 日本黄A三级三级三级| 免费黄色小视频| 国产三级在线观看视频| 日韩在线观看免| www.超碰| 理论片91| 中文字幕无码一区二区三区一本久 | 操逼视频免费在线观看| 特黄色视频| 国产精品久久久一区二区三区| 国产又色又爽又黄又免费| 成av人片一区二区三区久久| 日本成人视频在线免费播放| av资源站| 蜜桃人妻无码| 欧美日韩逼| 亚洲精品无码电影| 5D肉蒲团| 黄色带亚州| 人人摸人人操人人| 97AV在线| 国产毛片18水真多18精品| 91狠狠综合久久久| 国产精品久久久久久久久久久久久久久 | 白丝久久| 一级免费黄色电影| 五月天高清无码| 韩国无码AV| 91成人影片| 无码骚逼| 人人人爽| 福利视频网亚洲| 三级精品| 欧美日韩一区视频| 97超碰色| 国产精品无码在线观看| 在线无码中文| 麻豆秘在线观看国产| 黄色A片约| 中文字幕视频在线播放| 成人婷婷五月天| 国产乱国产乱老熟300视频| 一级女婬片A片AAAA片| 亚洲无码精品一区二区三区| 有免费的欧美操逼视频吗| 日本黄色免费视频| 中文字幕不卡视频| 啊啊啊啊啊在线观看| 国外亚洲成AV人片在线观看| 水果派解说在线观看| 性生活无码| 91AV一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 91人妻无码精品蜜桃| 99黄网| 天天日夜夜撸| 露脸丨91丨九色露脸| 影音先锋av资源网站| 操逼超碰| 国产18女人水真多免费看| 俺去夜| 欧美日韩精品在线视频| 亚洲无码免费网站| 翔田千里无码流出两部| 动漫3d啪啪成人h动漫| 北条麻妃中文字幕在线观看| 91ncom| 亚洲男女av| 豆花成人社区,视频| 嫩草视频网站| 国产一级a免一级a免费| 一级片黄色免费| 国产高清在线观看| 黄色成人网站在线播放| 高清中文字幕在线A片| 中文无码高清在线| 狠狠干综合| 大香伊人中文字幕精品| 黄色视频导航| 亚洲天堂一| 精品国产免费观看久久久_久久天天 | 欲撸视频| 精品国产91乱码一区二区三区| 欧美在线黄片| 色婷婷18正码国产| 91无码高清视频| 久久精彩偷拍视频| 西西444WWW大胆无视频软件亮点| 天天摸天天日| 91妻人人澡人人爽人人精品| 日韩中文字幕成人| 日韩人妻丰满无码区A片| 无码AⅤ一区二区三区| 无码人妻A片一区二区青苹果| 无码人妻中文| 国产丝袜AV| 成人三区| 俺来也俺就去www色情网| www.日本黄色视频| 91妻人人澡人人爽人人精品| 中国人妻HDbute熟睡| 久久大香蕉视频| 91探花视频精选在线播放| 丝瓜av| 天天天天天天天操| 国产日韩欧美久久| 日本一级婬片A片免费看| 欧美成人精品欧美一级乱黄| 亚洲无码视频在线看| 免费18禁网站| 动漫一区二区三区| 天天干在线观看视频| 国产精品一麻了麻了| www.高清无码| 亚洲五月天在线| 亚洲无码精品一区二区三区| 国产三级片91| 亚洲欧美成人| 日韩人妻电影| 91女人18毛片水多国产| 无码AV在线观看| 在线无码不卡| 乱子伦国产精品视频一级毛| 97婷婷五月天| 日韩性无码| 亚洲图片激情乱伦小说| 狠狠网| 免费无码成人片在线播放| 亚洲免费一级| 免费网站观看www在线观| 丁香一区二区| 艹逼中文字幕| 蝌蚪九色啦403| 日韩国产欧美| 特级特黄AAAAAAAA片| www.尤物视频| 国产精品成人一区二区| 小明成人免费视频| 免费国产黄色视频网站| 91人体视频| 午夜无码鲁丝片午夜精品一区二区 | 91超碰在线播放| 好男人一区二区三区在线观看| 国产欧美精品AAAAAA片| 色婷婷激情五月天| 爱福利视频网| AV麻豆| 国产高清Av| 日韩AV在线免费| 处破女初破全过免费看| 亚洲精品一区二区三区四区五区六区 | 伊人色爱| 午夜精品久久久久久不卡8050 | 狠狠操夜夜操| 麻豆艾秋MD0056在线| 人妻电影亚洲av| 欧美激情一区二区| 国产无码高潮在线| 性日韩| JLZZJLZZ亚洲女人| 91无码高清| 夜夜操夜夜| 黄色无码视频在线观看| 人人操人人妻人人看| 大香蕉99热| 超碰C| 国产精品毛片A√一区| 亚洲激情黑人| 国产小视频在线| 成人免费无遮挡无码黄漫视频| 高清无码视频在线免费观看| 蜜桃视频网站18| 在线观看日韩AV| 91小视频在线| 内射| 特级西西人体444www高清大胆| 97干在线| 十八无码成人免费网站| 又爽又黄免费网站97双女| 黄色毛片av| 最新中文字幕观看| 北条麻妃一区二区三区-免费免费高清观看 | 亚洲中文无码第一页| 人人人操| 午夜婷婷| 久久精品人妻| 99热最新网址| 国产在线成人| 国产资源av| V天堂在线| 日本韩国无码| 水蜜桃在线观看视频| 婷婷九月| 在线观看免费成人网站| 国产成人无码精品久在线观看| 黄a无码| 草逼逼| 人妻无码一区二区三区| 九一成人电影| 天天日日干| 成人五区| 亚洲人成人无码.www粉色| 日韩一区二区高清无码| 黄色视频在线观看地址| 无码免费毛片| AV在线资源观看| 欧美一级高清片免费一级a| 日韩色图在线观看| 欧美日韩中文在线观看| 天天日穴| 亚洲免费观看A∨中文| 一级a爱视频| 先锋资源男人站| 国产精品精品| 有免费的欧美操逼视频吗| AAA一区二区三区| 热热热热色| 精品操逼视频| 成人性爱视频免费在线观看| 在线不卡无码| 中文字幕在线播放av| 911国产视频| 午夜精品一区二区三区在线成人 | 强开小嫩苞毛片一二三区| 人人操天天| 97香蕉久久夜色精品国产| 99在线小视频| 96精品| 天天射天天日天天干| 欧美成人国产| 一区电影网| 成人一区视频| 色福利视频| 欧美三级一级| 色噜噜狠狠一区二区三区牛牛影视| 五月天色色网站| 国产AV中文| 中文字幕亚洲高清| 久久不射| 久久停停| 男插女青青影院| 无码中文字幕网站| 口爆在线观看| av在线无码| 三级片无码| 日韩无码第一页| 欧美激情四射老司机| 天天插在线视频| AV一二区| 一本免费视频| 三级片网页| 亚洲字幕AV| 四虎看片| 人妻啪啪视频| 黄色三级电影| 北条麻妃人妻中文字幕91影视| 中文字幕在线网址| 中文字幕日韩av| 亚洲AV激情无码专区在线播放| aa无码| 日韩高清AV| 亚洲成人一区| 欧洲成人在线播放| 手机AV免费| 亚洲中文字幕第一| 久久久精品一区| 国产无码影视| 国产精品不卡在线| 中文在线资源| 亚洲A级| 99涩涩| 伊人网视频在线| 日韩无码久久| 亚洲视频在线观看| 欧美3P视频| 天天干天天色天天射| 一级Av| 国产黄色自拍| 欧美丁香五月| 成人大香蕉网| 免费一级做a爱片毛片A片小说| 蜜桃av秘无码一区二区| 日日撸| 青娱乐在线成人| 91最新国产| 色哟哟网站| 天天色色天天| 西西444WWW无码大胆知乎| 91资源超碰| 东京热一区二区三区| 国产无码久久| 亚洲一级二级| 国产精品可站18| 国产黄色视频在线播放| 九七在线视频| 91在线不卡| 亚洲欧美日韩色图| 国产一区二区三区无码| 亚洲无码电影网| 日本中文字幕在线| 99re热在线视频| 欧美一级高清片免费一级a| 高清无码免费观看视频| 久久精品视频9| 亚洲午夜久久久久久久久红桃| 日韩视频无码| 西西4444WWW无码视频| 2025毛片| 国产成人精品一区二区三区四区| 视色AV| 精品国产重口乱子伦| 天天色天天爱| 在线无码人妻| 91精品婷婷国产综合久久韩漫| 国产人妻人伦精品一区| 91综合在线观看| 影音先锋中文字幕av| 无码日韩人妻精品久久蜜桃| 波多野结衣在线网站| 色综合久久88色综合天天| 日韩理论片| 人人干人| 免费人成在线观看视频播放| 天天日天天操天天摸天天干天日射天天插 | 国产又黄又大又粗的视频| 一区二区三区无码精品| 婷婷精品免费久久| 欧美v日韩| 天天爽日日澡AAAA片| 亚洲无码久久飞鱼网站| a片在线免费| 婷婷福利导航| 无码一区二区在线观看| 欧美日韩A| 欧美一级a| 久久综合站| 蜜臀久久99精品| 久操网址| 婷婷五月天亚洲| 国产xxxxx| 日韩潮喷| 欧美v亚洲| 婷婷深爱五月| 午夜看片| 亚洲福利视频97| 射射AV| 久久成人福利| 亚洲专区中文字幕| 天天激情| 久久人妻无码| 天天操人人操| 日韩在线视频免费播放| 国产女人视频| 综合+++夜夜| 国产精品99久久免费黑人人妻| 北条麻妃91人妻互换| 波多野结衣av中文字幕| 图片区视频区小说区| 偷偷撸在线| 操b视频免费| 曰曰摸日日碰| 黄色激情视频网站| 成人毛片网站| 色色在线观看| 日韩精品一区在线| 色综合一区二区三区| 国产精品A片| 国产精品日韩| 亚洲狠狠撸| 被黑人猛躁10次高潮视频| 中文字幕在线一区| 成人性生活影视av| 日本一级黄色| 日韩av免费看| 人人操网| 久久精品国产AV一区二区三区 | 91蝌蚪视频在线观看| 91无码精品| 国产午夜影视| 91免费网站在线观看| 午夜无码影院| 热逼视频| 91福利院| 国产做受91电影| 日韩无码AV电影| 北条麻妃99精彩视频| 亚洲中文无码av| 东方a在线| 91无码在线观看| 91av电影网| 免费无码毛片一区二区A片| 成人精品无码免费视频| 伊人网大香蕉| 婷婷五月激情小说| 大吊AV| 三级AV在线| 懂色在线精品分类视频| 欧美级黑寡妇毛片app| 久久精品www人人爽人人| 亚洲国产精品视频| 成人免费A片视频| 欧美3p视频| 免费亲子乱婬一级A片| 精品黄色毛片| 影音先锋色AV| 性无码一区二区| 亚洲欧美在线观看| 在线免费观看av网站| 中文字幕第一| 国产www| 操逼操逼操逼操逼操逼操逼| 性生活无码| 国产91在线播放| 日韩一级中文字幕| 一级特黄妇女高潮AA片免费播放| 欧美日韩国产一区二区| 狠狠躁婷婷天天爽综合| 一个人看的www日本高清视频 | 天天综合天天| 五月天婷婷av| 996热| 操逼免费视频网站| 美女肏| 无码精品一区| 国产乱子伦一区二区三| 大黄网站在线观看| 午夜婷婷| 91久久人澡人妻人人澡人人爽 | av大香蕉| 精品日韩中文字幕| 亚洲欧洲AV| 亚洲免费观看| 成人精品秘久久久按摩下载| 亚洲无码一级片| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | AV乱伦小说| 丁香五月中文字幕| 夜夜嗨AV一区二区三区啊| 蜜桃视频在线观看视频| 国产黄色在线视频| 黄色成人网站大全| 自拍成人视频| 久久精品99| AV无码一区| 最近2019中文字幕mv第三季歌词 | 午夜99| 欧美三级在线| 手机在线操B视频| 影音先锋国产资源| 黑丝一区| 少妇AV| 国产91在线播放| www.黄色大片| 亚洲性天堂| 日韩欧美一区二区三区| 黄色片久久| 欧美性爱-熊猫成人网| 国产18女人水真多免费看| 成人性爱视频网站| a国产| 特级西西444www| 精品久久成人| 国产欧美精品成人在线观看| 国产激情在线观看视频| 国产日皮视频| 国产精品探花熟女| 91AV成人| 91成人在线| 久草国产在线视频| A级网站| 西西444WWW无码视频软件功能介绍|