成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一次 Keepalived 高可用的事故,讓我重學(xué)了一遍它!

系統(tǒng) Linux
Keepalived 是 Linux 系統(tǒng)下的一個(gè)比較輕量級(jí)的高可用解決方案,這個(gè)輕量級(jí)是相對(duì)于 Heartbeat 等組件的。雖然 Heartbeat 功能完善、專(zhuān)業(yè)性強(qiáng),但是安裝部署就沒(méi)有 Keepalived 簡(jiǎn)單,Keepalived 只需要一個(gè)配置文件即可。

前言

上次我們遇到了一個(gè) MySQL 故障的事故,這次我又遇到了另外一個(gè)奇葩的問(wèn)題:

Keepalived 高可用組件的虛擬 IP 持續(xù)漂移,導(dǎo)致 MySQL 主從不斷切換,進(jìn)而導(dǎo)致 MySQL 主從數(shù)據(jù)同步失敗。

雖然沒(méi)能重現(xiàn) Keepalived 的這個(gè)問(wèn)題,但是我深入研究了下 Keepalived 的原理以及針對(duì)核心配置參數(shù)做了大量實(shí)驗(yàn)。悟空帶著大家一起看下 Keepalived 到底是如何運(yùn)轉(zhuǎn)的,以及為什么它能做到高可用。

原理講解分為上、中、下三篇:

篇涉及以下知識(shí)點(diǎn):

  • Keepalived 如何提供數(shù)據(jù)流量轉(zhuǎn)發(fā)。
  • Keepalived 選舉的原理。
  • Keepalived 的負(fù)載均衡算法。

中篇涉及以下知識(shí)點(diǎn):

  • Keepalived 的路由規(guī)則。
  • Keepalived 如何監(jiān)控服務(wù)的。
  • Keepalived 如何進(jìn)行故障切換。
  • Keepalived 的架構(gòu)剖析。

下篇設(shè)計(jì)以下知識(shí)點(diǎn):

  • Keepalived 配置詳解
  • Keepalived 實(shí)戰(zhàn)部署

一、Keepalived 和 LVS 概述

1.1 Keepalived 概述

談到 Keepalived,給人的印象就是用在高可用架構(gòu)中,保證某個(gè)服務(wù)不故障,其實(shí)它還有很多其他的功能。Keepalived 是 Linux 系統(tǒng)下的一個(gè)比較輕量級(jí)的高可用解決方案,這個(gè)輕量級(jí)是相對(duì)于 Heartbeat 等組件的。雖然 Heartbeat 功能完善、專(zhuān)業(yè)性強(qiáng),但是安裝部署就沒(méi)有 Keepalived 簡(jiǎn)單,Keepalived 只需要一個(gè)配置文件即可。企業(yè)中大多選擇 Keepalived 作為高可用組件。

1.2 LVS 概述

Keepalived 最開(kāi)始是由 Alexandre Cassen 使用 C 語(yǔ)言編寫(xiě)的開(kāi)源軟件項(xiàng)目,項(xiàng)目的目的主要是簡(jiǎn)化 LVS 項(xiàng)目的配置并增強(qiáng) LVS 的穩(wěn)定性。簡(jiǎn)單來(lái)說(shuō),Keepalived 就是對(duì) LVS 的擴(kuò)展增強(qiáng)。

LVS(Linux Virtual Server)翻譯過(guò)來(lái)就是 Linux 虛擬服務(wù)器,由章文嵩博士主導(dǎo)開(kāi)發(fā)的開(kāi)源負(fù)載項(xiàng)目,目前 LVS 已經(jīng)被集成到 Linux 內(nèi)核模塊中。

LVS 主要用在負(fù)載均衡方面,比如 Web 客戶(hù)端想要訪問(wèn)后端服務(wù),Web 請(qǐng)求會(huì)先經(jīng)過(guò) LVS 調(diào)度器,調(diào)度器根據(jù)預(yù)設(shè)的算法決定如何分發(fā)給后端的所有服務(wù)器。

1.3 LVS 基本原理

LVS 的基本原理如下圖所示:

圖片

LVS基本原理

LVS 的核心功能就是提供負(fù)載均衡,負(fù)載均衡技術(shù)有多種:

  • 基于 DNS 域名輪流解析方案。
  • 基于客戶(hù)端調(diào)度訪問(wèn)方案。
  • 基于應(yīng)用層系統(tǒng)的調(diào)度方案。
  • 基于 IP 地址的調(diào)度方案。

而效率最高的是基于 IP 地址的調(diào)度方案。其實(shí)就是將請(qǐng)求轉(zhuǎn)發(fā)給對(duì)應(yīng)的 IP 地址 + 端口號(hào),它的效率是非常高的,LVS 的 IP 負(fù)載均衡技術(shù)是通過(guò) IPVS 模塊來(lái)實(shí)現(xiàn)的,IPVS 是 LVS 集群系統(tǒng)的核心軟件。

LVS 負(fù)載均衡器會(huì)虛擬化一個(gè)IP(VIP),對(duì)于客戶(hù)端來(lái)說(shuō),它事先只知道這個(gè) VIP 的,客戶(hù)端就將請(qǐng)求發(fā)送給 VIP,然后 LVS 負(fù)載均衡器會(huì)將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器中的一個(gè),這些服務(wù)器都稱(chēng)為 Real Server(真實(shí)服務(wù)器)。轉(zhuǎn)發(fā)的規(guī)則是通過(guò)設(shè)置 LVS 的負(fù)載均衡算法來(lái)的,比如隨機(jī)分配、按照權(quán)重分配等。

后端服務(wù)器的提供的功能要求是一致的,不論轉(zhuǎn)發(fā)到哪臺(tái)服務(wù)器,最終得到的結(jié)果是一致的,所以對(duì)于客戶(hù)端來(lái)說(shuō),它并不關(guān)心有多少個(gè)后端服務(wù)器在提供服務(wù),它只關(guān)心訪問(wèn)的 VIP 是多少。

那么后端服務(wù)處理完請(qǐng)求后,如何將數(shù)據(jù)返回給客戶(hù)端呢?根據(jù) LVS 的不同模式,會(huì)選擇不同的方式將數(shù)據(jù)返回給客戶(hù)端。LVS 的工作模式有三種:NAT 模式、TUN 模式、DR 模式。這個(gè)后面講到路由機(jī)制再來(lái)細(xì)說(shuō)。

二、Keepalived 流量轉(zhuǎn)發(fā)原理

Keepalived 為 Linux 系統(tǒng)提供了負(fù)載均衡和高可用能力。負(fù)載均衡的能力來(lái)自 Linux 內(nèi)核中的 LVS 項(xiàng)目模塊 IPVS(IP Virtual Server)。

Keepalived 運(yùn)行在 Linux 系統(tǒng)中,它會(huì)啟動(dòng)內(nèi)核中的 LVS 服務(wù)來(lái)創(chuàng)建虛擬服務(wù)器。比如我們?cè)趦膳_(tái)服務(wù)器上都啟動(dòng)了一個(gè) Keepalived 服務(wù),然后 LVS 會(huì)虛擬化出來(lái)一個(gè) IP(VIP),但是只有一個(gè) Keepalived 會(huì)接管這個(gè) VIP,就是說(shuō)客戶(hù)端的請(qǐng)求只會(huì)到 Master Keepalived 節(jié)點(diǎn)上。這樣流量就只會(huì)到一臺(tái) keepalived 上了,然后 keepalived 可以配置幾臺(tái)真實(shí)的服務(wù) IP 地址和端口,通過(guò)負(fù)載調(diào)度算法將流量分?jǐn)偟竭@些服務(wù)上。對(duì)于另外一臺(tái) Backup Keepalived 節(jié)點(diǎn),它是待機(jī)狀態(tài),沒(méi)有流量接入的。

圖片

三、Keepalived 如何進(jìn)行選主的

那么上面的兩個(gè) Keepalived 服務(wù)是如何選出其中一個(gè)作為 Master 節(jié)點(diǎn)的呢?

我們一般都是運(yùn)行在兩臺(tái)主備服務(wù)器或一主多備的服務(wù)器上。而這多臺(tái)服務(wù)器都是遵循 VRRP 的。

3.1 VRRP 協(xié)議

VRRP 的全稱(chēng)為 Virtual Router Redundancy Protoco,虛擬路由冗余協(xié)議。它是一種容錯(cuò)協(xié)議,為了解決局域網(wǎng)中單點(diǎn)路由故障的問(wèn)題。比如之前我們都是一個(gè)路由器進(jìn)行路由轉(zhuǎn)發(fā),如果這個(gè)路由器故障了,那么整個(gè)路由轉(zhuǎn)發(fā)的鏈路就斷了,服務(wù)就不可用了。

VRRP 協(xié)議主要的功能:

  • 虛擬路由器和虛擬 IP。
  • Master 廣播 ARP 報(bào)文。
  • Backup 選舉新的 Master。

圖片

現(xiàn)在我們配置多臺(tái)路由器(一主多備),每臺(tái)路由器都有一個(gè)自己的 IP 地址,它們組成一個(gè)路由器組,其中有一個(gè)作為 Master,其他作為 Backup。然后這些路由器會(huì)虛擬出單個(gè)路由,擁有自己的 IP 地址,也就是 Virtual IP,簡(jiǎn)稱(chēng) VIP。

客戶(hù)端訪問(wèn)這個(gè)虛擬的 IP 地址就可以了,當(dāng)主路由器故障了,備份路由器通過(guò)選舉機(jī)制選出一個(gè)新的主路由器,繼續(xù)向客戶(hù)端提供路由服務(wù),實(shí)現(xiàn)了路由功能的高可用。

路由器開(kāi)啟 VRRP 功能后,根據(jù)優(yōu)先級(jí)配置進(jìn)行選舉,優(yōu)先級(jí)高的會(huì)成為主(Master)路由器,另外的則會(huì)成為備(Backup)路由器。

Master 路由器定期發(fā)送 VRRP 通知報(bào)文給 Backup 路由器,告訴它們我是在正常工作的,你們不用競(jìng)選新的 Master 路由器。

關(guān)于 Master 和 Backup 通信的原理其實(shí)很簡(jiǎn)單,就是一個(gè)心跳機(jī)制,不過(guò)這個(gè)和 Eureka 的心跳機(jī)制不一樣,Eureka 是客戶(hù)端定期向 Eureka 注冊(cè)中心發(fā)送心跳,而 Keepalived 則是 Master 定期向 Backup 發(fā)送心跳機(jī)制,而 Backup 路由器它有一個(gè)定時(shí)監(jiān)測(cè)通知的任務(wù),如果在這個(gè)時(shí)間段內(nèi)未收到通知,則認(rèn)為 Mater 故障了,然后通過(guò)優(yōu)先級(jí)進(jìn)行選舉,選舉出新的 Master 后,就定期發(fā)送 VRRP 通知報(bào)文給 Backup 路由器。(??Eureka 心跳機(jī)制:唐太宗把微服務(wù)的“心跳機(jī)制”玩到了極致!??)

通過(guò)這個(gè) VRRP 協(xié)議,可以提高系統(tǒng)的可用性,避免因單點(diǎn)故障導(dǎo)致的服務(wù)不可用問(wèn)題,同時(shí)在路由器故障時(shí),無(wú)需手動(dòng)修改網(wǎng)絡(luò)連接信息以訪問(wèn)新的 Master 路由器。如下圖所示,Backup 切換為了 Master。

圖片

關(guān)于選舉的配置主要依賴(lài) vrrp_instance 和 vrrp_script 字段。

3.2 vrrp_instance 配置

對(duì)于 Keepalived 的選主有三個(gè)重要參數(shù):

  • state:可選值為 MASTER、BACKUP。
  • priority:節(jié)點(diǎn)的優(yōu)先級(jí),可選值為 [1-255]。
  • nopreempt:不搶占模式,如果配置,則當(dāng)優(yōu)先級(jí)高時(shí),會(huì)將自己設(shè)置為 Master。
vrrp_instance VI_1 {
# 節(jié)點(diǎn)為 BACKUP
state BACKUP
# 優(yōu)先級(jí)為 100
priority 100
# 不搶占模式
nopreempt
}

當(dāng)一臺(tái)設(shè)置為 master,另外一臺(tái)設(shè)置為 BACKUP,當(dāng) MASTER 故障后,BACKUP 會(huì)成為新的 MASTER,而當(dāng)老的 MASTER 恢復(fù)后,又會(huì)搶占成為新的 MASTER,接管 VIP 的流量,導(dǎo)致不必要的主備切換。為了避免這種主備切換,我們可以將兩臺(tái) Keepalived 都設(shè)置為 BACKUP,且高優(yōu)先級(jí)的那臺(tái) Keepalived 設(shè)置為不搶占 nopreempt。

3.3 vrrp_script 配置

而優(yōu)先級(jí) priority 它是可以增減的,通過(guò) vrrp_script 來(lái)配置:

vrrp_script restart_mysql {
# 監(jiān)測(cè)和重啟 mysql 容器,如果 MySQL 服務(wù)正常或 MySQL 失敗
script "/usr/local/keepalived/restart_mysql.sh"
interval 5
weight -20
}

這個(gè)是定時(shí)執(zhí)行腳本的配置,script 配置會(huì)監(jiān)測(cè) mysql 服務(wù)是否不正常。這是一個(gè)自定義的腳本,可以自己寫(xiě)返回值。這里我寫(xiě)的邏輯是如果 MySQL 服務(wù)正常則返回 0,不正常則返回 1。

當(dāng) weight 為正數(shù)

圖片

當(dāng)腳本返回 0 時(shí)(服務(wù)正常),則增加優(yōu)先級(jí)=priority + weight;否則,保持設(shè)置的 priority 值。

切換策略:

  • 如果 MASTER 節(jié)點(diǎn)的 vrrp_script 腳本檢測(cè)失敗時(shí),如果 MASTER 節(jié)點(diǎn)的 priority 值小于 BACKUP 節(jié)點(diǎn) weight + priority,則發(fā)生主備切換。
  • 如果 MASTER 節(jié)點(diǎn)的 vrrp_script 腳本檢測(cè)成功時(shí),如果 MASTER 節(jié)點(diǎn)的 priority 值大于 BACKUP 節(jié)點(diǎn) weight + priority,則不發(fā)生主備切換。

當(dāng) weight 為負(fù)數(shù)

圖片

當(dāng)腳本返回非 0 時(shí)(服務(wù)異常),則優(yōu)先級(jí)=priority - |weight|;否則,保持設(shè)置的 priority 值。

切換策略:

  • 如果 MASTER 節(jié)點(diǎn)的 vrrp_script 腳本檢測(cè)失敗時(shí),如果 MASTER 節(jié)點(diǎn)的 priority - |weight| 值小于 BACKUP 節(jié)點(diǎn) priority 值,則發(fā)生主備切換。
  • 如果 MASTER 節(jié)點(diǎn)的 vrrp_script 腳本檢測(cè)成功時(shí),如果 MASTER 節(jié)點(diǎn)的 priority 值大于 BACKUP 節(jié)點(diǎn) priority 值,則不發(fā)生主備切換。

注意:增加或減少優(yōu)先級(jí)的范圍為 [1,254]。

舉例說(shuō)明:

兩臺(tái) Keepalived 的 state 都配置成 BACKUP,其中一臺(tái)服務(wù)器 node1 的 Keepalived 的優(yōu)先級(jí)設(shè)置為 100,不搶占模式,另外一臺(tái) node2 的優(yōu)先級(jí)設(shè)置為 90,搶占模式。

node1 節(jié)點(diǎn)配置的優(yōu)先級(jí)高,它成為 Master 節(jié)點(diǎn),當(dāng) Master 節(jié)點(diǎn)監(jiān)控的 MySQL 服務(wù)發(fā)生故障后,會(huì)降低優(yōu)先級(jí),從 100 降低到 80。另外一臺(tái)優(yōu)先級(jí)為 90,收到優(yōu)先級(jí)比自己低的 ARP 廣播時(shí),就會(huì)變成新的 Master 節(jié)點(diǎn)。而 node1 節(jié)點(diǎn)會(huì)成為 BACKUP 節(jié)點(diǎn),當(dāng) node1 監(jiān)控到 MySQL 服務(wù)恢復(fù)后,優(yōu)先級(jí)變?yōu)榕渲玫?priority 100,但是也不會(huì)搶占。

如下圖所示:雖然 node1 上的 keepalived 重啟 mysql 成功了,優(yōu)先級(jí)也恢復(fù)成了 100,但是并沒(méi)有變?yōu)?master,還是維持 backup 狀態(tài)。

圖片

而 node2 還是 master 節(jié)點(diǎn),定時(shí)向 node 1 發(fā)送 vrrp 通知,如下圖所示:

圖片

如果 node2 的 mysql 宕機(jī)了,那么它的優(yōu)先級(jí)會(huì)從 90 降低到 70,即使這樣,也不會(huì)出現(xiàn)主備切換,因?yàn)槲覀兣渲玫牟呗跃褪?node1 不會(huì)搶占。如果要在這種情況下切換到 node1,就只能將 node2 的 keepalived 主動(dòng)停掉,故障轉(zhuǎn)移中篇會(huì)講到。

四、Keepalived 的負(fù)載均衡機(jī)制

4.1 轉(zhuǎn)發(fā)機(jī)制

要理解 Keepalived 的負(fù)載均衡機(jī)制,必須了解 IPVS,也就是 IP Virtual Server,IP 虛擬服務(wù)器。

IPVS 模塊是 Keepalived 引入的一個(gè)第三方模塊,目的是解決單 IP 多服務(wù)器的工作環(huán)境,通過(guò) IPVS 可以實(shí)現(xiàn)基于 IP 的負(fù)載均衡集群。IPVS 默認(rèn)包含在 LVS 軟件中,而 LVS 又是包含在 Linux 系統(tǒng)中。所以 Keepalived 在 Linux 系統(tǒng)上可以直接利用 LVS 的功能。LVS 的作用就是虛擬出一個(gè) IP,也就是 VIP,客戶(hù)端請(qǐng)求先到達(dá) VIP,然后從服務(wù)器集群中選擇一個(gè)服務(wù)器節(jié)點(diǎn),將流量轉(zhuǎn)發(fā)給這個(gè)節(jié)點(diǎn),由這個(gè)節(jié)點(diǎn)處理請(qǐng)求。

圖片

如圖所示:

  • Keepalived 是運(yùn)行在用戶(hù)空間的 LVS 路由(LVS Router)進(jìn)程,作為 MASTER 角色 Keepalived 稱(chēng)為 Active Router,BACKUP 角色的 Keepalived 稱(chēng)為 SLAVE Router。只有 Active Router 是工作的,其他 Router 是 Stand By (待機(jī)狀態(tài))。
  • Active Router 和 Backup Router 之間是通過(guò) VRRP 協(xié)議進(jìn)行主備切換的。
  • Active Router 會(huì)啟動(dòng)內(nèi)核中 LVS 服務(wù)以創(chuàng)建虛擬服務(wù)器,虛擬服務(wù)器有一個(gè)虛擬 IP(VIP),比如下圖中的 VIP 為 192.168.56.88。
  • Active Router 還會(huì)設(shè)置 IPVS TABLES(服務(wù)器列表),記錄了后端服務(wù)器的地址及服務(wù)運(yùn)行狀態(tài)。負(fù)載均衡就從服務(wù)器列表選擇一個(gè)可用的服務(wù)進(jìn)行轉(zhuǎn)發(fā)。
  • 這些后端服務(wù)是配置在 Keepalived 的 virtual_server 配置項(xiàng)里面的,如下所示,配置了三個(gè) real_server,分別對(duì)應(yīng)了三臺(tái)后端服務(wù)器。
virtual_server 192.168.56.88 80 { 
delay_loop 6
lb_algo rr
lb kind NAT
protocol tcp
# 服務(wù)器 1
real_server 192.168.56.11 80 {
TCP_CHECK {
connect timeout 10
}
# 服務(wù)器 2
real_server 192.168.56.12 80 {
TCP_CHECK {
connect timeout 10
}
# 服務(wù)器 3
real_server 192.168.56.13 80 {
TCP_CHECK {
connect timeout 10
}

4.2 負(fù)載調(diào)度算法

配置中有一個(gè)字段 lb_algo,這個(gè)就是負(fù)載調(diào)度算法,可以配置成 rr、wrr、lc、wlc、sh、dh 等。常用的是 rr 和 wrr。

rr,就是 Round-Robin,輪詢(xún)算法, 每個(gè)服務(wù)器平等的,依次被調(diào)度。

wrr,就是 Weighted Round-Robin,加權(quán)輪詢(xún)調(diào)度算法,加權(quán)值較大的,會(huì)被轉(zhuǎn)發(fā)更多的請(qǐng)求。比如有的服務(wù)器硬件能力較弱,則可以將加權(quán)值配置得低一點(diǎn)。

lc,就是 Least-Connection,最少連接算法。請(qǐng)求被轉(zhuǎn)發(fā)到活動(dòng)連接較少的服務(wù)器上。連接數(shù)是通過(guò) IPVS Table 來(lái)動(dòng)態(tài)跟蹤的。

wlc,加權(quán)最少連接。根據(jù)權(quán)重 + 連接數(shù) 分配請(qǐng)求。

sh,目標(biāo)地址哈希算法,通過(guò)在靜態(tài) Hash 表中查詢(xún)目的 IP 地址來(lái)確定請(qǐng)求要轉(zhuǎn)發(fā)的服務(wù)器,這類(lèi)算法主要用于緩存代理服務(wù)器中。

dh,源地址哈希算法,通過(guò)在靜態(tài) Hash 表中查詢(xún)?cè)?IP 地址來(lái)確定請(qǐng)求要轉(zhuǎn)發(fā)的服務(wù)器,這類(lèi)算法主要用于防火墻的 LVS Router 中。

五、總結(jié)

Keepalived 作為高可用、高性能組件,在集群環(huán)境中用得還是挺多的,所以去理解 Keepalived 的底層原理,也可以學(xué)到很多高可用和負(fù)載均衡的通用原理。

本篇介紹了 Keepalived 的 IPVS 功能,啟動(dòng)了一個(gè)虛擬服務(wù)器,虛擬化了一個(gè) VIP,用來(lái)接收客戶(hù)端的請(qǐng)求,然后通過(guò)負(fù)載調(diào)度算法將流量轉(zhuǎn)發(fā)給真實(shí)服務(wù)器。

Keepalived 一般用在都是一主一備或一主多備的場(chǎng)景,而對(duì)于主的選舉是通過(guò)配置 state、privority、nopreemt、weight 字段來(lái)達(dá)到的。

下篇我們?cè)賮?lái)看下真實(shí)服務(wù)器處理完請(qǐng)求后,如何將數(shù)據(jù)返回給客戶(hù)端,這個(gè)涉及到 LVS 的路由規(guī)則。以及監(jiān)控和故障切換也是 Keepalived 的核心功能,這個(gè)很有必要深入探索下。

責(zé)任編輯:武曉燕 來(lái)源: 悟空聊架構(gòu)
相關(guān)推薦

2023-01-16 14:49:00

MongoDB數(shù)據(jù)庫(kù)

2022-07-11 13:58:14

數(shù)據(jù)庫(kù)業(yè)務(wù)流程系統(tǒng)

2022-06-15 08:26:23

數(shù)據(jù)庫(kù)MySQL

2021-06-29 10:18:07

Kafka宕機(jī)系統(tǒng)

2017-12-26 14:17:24

潤(rùn)乾報(bào)表

2022-09-07 09:09:13

高并發(fā)架構(gòu)

2025-03-11 08:48:35

JVMOOM事故

2022-01-27 08:31:20

一致性哈希

2020-10-21 12:10:30

訂單號(hào)Java代碼

2021-08-12 10:36:18

order byMySQL數(shù)據(jù)庫(kù)

2020-08-24 07:34:39

網(wǎng)絡(luò)超時(shí)請(qǐng)求

2021-03-05 22:41:55

CDH集群CDH集群

2023-01-10 19:47:47

Redis原理多線程

2022-05-12 09:52:09

網(wǎng)絡(luò)架構(gòu)HTTP跨域保護(hù)機(jī)制

2019-01-16 09:20:42

架構(gòu)設(shè)計(jì)JVM FullGC宕機(jī)事故

2020-11-16 12:35:25

線程池Java代碼

2022-06-06 11:31:31

MySQL數(shù)據(jù)查詢(xún)

2021-06-15 07:15:15

Oracle底層explain

2022-01-17 20:59:37

開(kāi)發(fā)group by思路

2019-09-19 08:04:40

網(wǎng)絡(luò)七層模型TCPUDP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲精品成人 | 日韩中文欧美 | 亚洲国产一区在线 | 99综合在线 | 精品国产欧美一区二区三区不卡 | 久久久国产一区二区三区四区小说 | 亚洲视频二区 | 成人国产精品 | 一区二区三区在线观看视频 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 91视频网址 | 亚洲成av片人久久久 | 欧洲av在线 | 男女精品网站 | 国产高清在线精品一区二区三区 | 欧美一区二区三 | 成人精品一区二区三区 | 在线观看免费av片 | 久久精品一区二区三区四区 | 成人欧美一区二区三区在线观看 | 欧美成人aaa级毛片在线视频 | 五月激情综合 | 欧美美女爱爱 | 亚洲精品电影 | 在线看无码的免费网站 | 天堂资源最新在线 | 在线视频亚洲 | 久久久精品影院 | 亚洲欧美日韩电影 | 国产清纯白嫩初高生在线播放视频 | 国产高清视频 | 亚洲国产成人精品女人久久久 | 91色站| 日韩电影一区 | 久久免费精品视频 | 九色在线视频 | 人人鲁人人莫人人爱精品 | 久久久妇女国产精品影视 | 91综合网 | 我想看国产一级毛片 | 一级片aaa |