日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析

發(fā)布時間:2024/1/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第五、第六、第七篇博文,我們講解了Standalone模式集群是如何啟動的,一個App起來了后,集群是如何分配資源,Worker啟動Executor的,Task來是如何執(zhí)行它,執(zhí)行得到的結(jié)果如何處理,以及app退出后,分配了的資源如何回收。

但在分布式系統(tǒng)中,由于機(jī)器眾多,所有發(fā)生故障是在所難免的,若運(yùn)行過程中Executor、Worker或者M(jìn)aster異常退出了,那該怎么辦呢?這篇博文,我們就來講講在Standalone模式下,Spark的集群容錯與高可用性(HA)。

Executor

Worker.receive

我先回到《深入理解Spark 2.1 Core (六):資源調(diào)度的原理與源碼分析 》的ExecutorRunner.fetchAndRunExecutor中,看看executor的退出:

// executor會退出并返回0或者非0的exitCodeval exitCode = process.waitFor()state = ExecutorState.EXITEDval message = "Command exited with code " + exitCode// 給Worker發(fā)送ExecutorStateChanged信號worker.send(ExecutorStateChanged(appId, execId, state, Some(message), Some(exitCode)))
  • 1

worker接收到了ExecutorStateChanged信號后,調(diào)用handleExecutorStateChanged

case executorStateChanged @ ExecutorStateChanged(appId, execId, state, message, exitStatus) =>handleExecutorStateChanged(executorStateChanged)

Worker.handleExecutorStateChanged

private[worker] def handleExecutorStateChanged(executorStateChanged: ExecutorStateChanged):Unit = {// 給Master發(fā)送executorStateChanged信號sendToMaster(executorStateChanged)val state = executorStateChanged.stateif (ExecutorState.isFinished(state)) {// 釋放executor資源val appId = executorStateChanged.appIdval fullId = appId + "/" + executorStateChanged.execIdval message = executorStateChanged.messageval exitStatus = executorStateChanged.exitStatusexecutors.get(fullId) match {case Some(executor) =>logInfo("Executor " + fullId + " finished with state " + state +message.map(" message " + _).getOrElse("") +exitStatus.map(" exitStatus " + _).getOrElse(""))executors -= fullIdfinishedExecutors(fullId) = executortrimFinishedExecutorsIfNecessary()coresUsed -= executor.coresmemoryUsed -= executor.memorycase None =>logInfo("Unknown Executor " + fullId + " finished with state " + state +message.map(" message " + _).getOrElse("") +exitStatus.map(" exitStatus " + _).getOrElse(""))}maybeCleanupApplication(appId)}} }

Master.receive

Master接收到ExecutorStateChanged信號后:

case ExecutorStateChanged(appId, execId, state, message, exitStatus) =>// 通過appId取到App的信息,// 在App的信息中找到該executor的信息val execOption = idToApp.get(appId).flatMap(app => app.executors.get(execId))execOption match {case Some(exec) =>val appInfo = idToApp(appId)// 改變改executor的狀態(tài)val oldState = exec.stateexec.state = stateif (state == ExecutorState.RUNNING) {assert(oldState == ExecutorState.LAUNCHING,s"executor $execId state transfer from $oldState to RUNNING is illegal")appInfo.resetRetryCount()}exec.application.driver.send(ExecutorUpdated(execId, state, message, exitStatus, false))if (ExecutorState.isFinished(state)) {logInfo(s"Removing executor ${exec.fullId} because it is $state")// 若該app已經(jīng)結(jié)束, // 保持原來的executor信息,// 用于呈現(xiàn)在Web UI上,// 若該app還沒結(jié)束,// 則從app信息中移除該executorif (!appInfo.isFinished) {appInfo.removeExecutor(exec)}// 把executor從worker中移除exec.worker.removeExecutor(exec)// 獲取executor退出狀態(tài)val normalExit = exitStatus == Some(0)// 若executor退出狀態(tài)非正常,// 且app重新嘗試調(diào)度次數(shù)到達(dá)最大重試次數(shù),// 則移除這個appif (!normalExit&& appInfo.incrementRetryCount() >= MAX_EXECUTOR_RETRIES&& MAX_EXECUTOR_RETRIES >= 0) { // < 0 disables this application-killing pathval execs = appInfo.executors.valuesif (!execs.exists(_.state == ExecutorState.RUNNING)) {logError(s"Application ${appInfo.desc.name} with ID ${appInfo.id} failed " +s"${appInfo.retryCount} times; removing it")removeApplication(appInfo, ApplicationState.FAILED)}}}//重新調(diào)度schedule()
  • 1
  • 45

Worker

Worker.killProcess

我們回到《深入理解Spark 2.1 Core (六):資源調(diào)度的原理與源碼分析 》的ExecutorRunner.start中:

// 創(chuàng)建Shutdownhook線程 // 用于worker關(guān)閉時,殺掉executorshutdownHook = ShutdownHookManager.addShutdownHook { () =>if (state == ExecutorState.RUNNING) {state = ExecutorState.FAILED}killProcess(Some("Worker shutting down")) }}
  • 1

worker退出后,ShutdownHookManager會調(diào)用killProcess殺死executor:

private def killProcess(message: Option[String]) {var exitCode: Option[Int] = Noneif (process != null) {logInfo("Killing process!")// 停止運(yùn)行日志輸出if (stdoutAppender != null) {stdoutAppender.stop()}if (stderrAppender != null) {// 停止錯誤日志輸出stderrAppender.stop()}// kill executor進(jìn)程,// 并返回結(jié)束類型exitCode = Utils.terminateProcess(process, EXECUTOR_TERMINATE_TIMEOUT_MS)if (exitCode.isEmpty) {logWarning("Failed to terminate process: " + process +". This process will likely be orphaned.")}}try {// 給worker發(fā)送ExecutorStateChanged信號worker.send(ExecutorStateChanged(appId, execId, state, message, exitCode))} catch {case e: IllegalStateException => logWarning(e.getMessage(), e)}}
  • 1

Master.timeOutDeadWorkers

當(dāng)Worker向Master注冊直接的時候,會向worker的handleRegisterResponse發(fā)送RegisteredWorker信號。handleRegisterResponse處理該信號時會啟動一個線程,來不斷的給worker自己的SendHeartbeat信號

case RegisteredWorker(masterRef, masterWebUiUrl) =>***forwordMessageScheduler.scheduleAtFixedRate(new Runnable {override def run(): Unit = Utils.tryLogNonFatalError {self.send(SendHeartbeat)}}, 0, HEARTBEAT_MILLIS, TimeUnit.MILLISECONDS)***
  • 1

worker receive到SendHeartbeat信號后,處理:

case SendHeartbeat =>if (connected) { sendToMaster(Heartbeat(workerId, self)) }

給Master發(fā)送Heartbeat信號。

Master接收到Heartbeat信號后處理:

case Heartbeat(workerId, worker) =>idToWorker.get(workerId) match {case Some(workerInfo) =>// 更新worker的lastHeartbeat信息workerInfo.lastHeartbeat = System.currentTimeMillis()case None =>if (workers.map(_.id).contains(workerId)) {logWarning(s"Got heartbeat from unregistered worker $workerId." +" Asking it to re-register.")worker.send(ReconnectWorker(masterUrl))} else {logWarning(s"Got heartbeat from unregistered worker $workerId." +" This worker was never registered, so ignoring the heartbeat.")}}
  • 1

而在Master.onStart中我可以看到:

checkForWorkerTimeOutTask = forwardMessageThread.scheduleAtFixedRate(new Runnable {override def run(): Unit = Utils.tryLogNonFatalError {self.send(CheckForWorkerTimeOut)}}, 0, WORKER_TIMEOUT_MS, TimeUnit.MILLISECONDS)

也專門起了一個線程給自己發(fā)送CheckForWorkerTimeOut信號。Master receive到CheckForWorkerTimeOut信號后:

case CheckForWorkerTimeOut =>timeOutDeadWorkers()

調(diào)用timeOutDeadWorkers:

private def timeOutDeadWorkers() {val currentTime = System.currentTimeMillis()// 過濾出 最后收到心跳的時間 < 現(xiàn)在的時間 - worker心跳間隔的workerval toRemove = workers.filter(_.lastHeartbeat < currentTime - WORKER_TIMEOUT_MS).toArray// 遍歷這些workerfor (worker <- toRemove) {// 若WorkerInfo 狀態(tài)不為 DEADif (worker.state != WorkerState.DEAD) {logWarning("Removing %s because we got no heartbeat in %d seconds".format(worker.id, WORKER_TIMEOUT_MS / 1000))// 調(diào)用removeWorkerremoveWorker(worker)} // 若WorkerInfo 狀態(tài)為 DEADelse {// 等待足夠長的時間后,// 再將它從workers列表中移除 :// 最后收到心跳的時間 < 現(xiàn)在的時間 - worker心跳間隔 × REAPER_ITERATIONS// REAPER_ITERATIONS 由 spark.dead.worker.persistence 參數(shù)設(shè)置,// 默認(rèn)為 15if (worker.lastHeartbeat < currentTime - ((REAPER_ITERATIONS + 1) * WORKER_TIMEOUT_MS)) {workers -= worker }}}}
  • 1

Master.removeWorker

private def removeWorker(worker: WorkerInfo) {logInfo("Removing worker " + worker.id + " on " + worker.host + ":" + worker.port)// 標(biāo)志worker狀態(tài)為DEADworker.setState(WorkerState.DEAD)// 移除各個緩存idToWorker -= worker.idaddressToWorker -= worker.endpoint.addressif (reverseProxy) {webUi.removeProxyTargets(worker.id)}for (exec <- worker.executors.values) {logInfo("Telling app of lost executor: " + exec.id)// 向使用該executor的app,// 發(fā)送ExecutorUpdated信號exec.application.driver.send(ExecutorUpdated(exec.id, ExecutorState.LOST, Some("worker lost"), None, workerLost = true))// 標(biāo)志executor狀態(tài)為LOSTexec.state = ExecutorState.LOST// 將executor從app信息中移除exec.application.removeExecutor(exec)}for (driver <- worker.drivers.values) {// 重啟 或移除 Driverif (driver.desc.supervise) {logInfo(s"Re-launching ${driver.id}")relaunchDriver(driver)} else {logInfo(s"Not re-launching ${driver.id} because it was not supervised")removeDriver(driver.id, DriverState.ERROR, None)}}// 從持久化引擎中移除persistenceEngine.removeWorker(worker)}
  • 1

Master.removeDriver

private def removeDriver(driverId: String,finalState: DriverState,exception: Option[Exception]) {drivers.find(d => d.id == driverId) match {case Some(driver) =>logInfo(s"Removing driver: $driverId")// 從driver列表中移除drivers -= driverif (completedDrivers.size >= RETAINED_DRIVERS) {val toRemove = math.max(RETAINED_DRIVERS / 10, 1)completedDrivers.trimStart(toRemove)}// 加入到completedDrivers列表completedDrivers += driver// 從持久化引擎中移除persistenceEngine.removeDriver(driver)// 標(biāo)志狀態(tài)driver.state = finalStatedriver.exception = exception// 將這個driver注冊過的worker,// 移除上面的driverdriver.worker.foreach(w => w.removeDriver(driver))// 重新調(diào)度schedule()case None =>logWarning(s"Asked to remove unknown driver: $driverId")}} }
  • 1

Master

接下來我們來講講Master的容錯及HA。在之前的Master代碼中出現(xiàn)了持久化引擎persistenceEngine的對象,其實(shí)它就是實(shí)現(xiàn)Master的容錯及HA的關(guān)鍵。我們先來看看Master.osStart中,會根據(jù)RECOVERY_MODE,來生成持久化引擎persistenceEngine和選舉代理 leaderElectionAgent。

val (persistenceEngine_, leaderElectionAgent_) = RECOVERY_MODE match {case "ZOOKEEPER" =>logInfo("Persisting recovery state to ZooKeeper")val zkFactory =new ZooKeeperRecoveryModeFactory(conf, serializer)(zkFactory.createPersistenceEngine(), zkFactory.createLeaderElectionAgent(this))case "FILESYSTEM" =>val fsFactory =new FileSystemRecoveryModeFactory(conf, serializer)(fsFactory.createPersistenceEngine(), fsFactory.createLeaderElectionAgent(this))case "CUSTOM" =>// 用戶自定義機(jī)制val clazz = Utils.classForName(conf.get("spark.deploy.recoveryMode.factory"))val factory = clazz.getConstructor(classOf[SparkConf], classOf[Serializer]).newInstance(conf, serializer).asInstanceOf[StandaloneRecoveryModeFactory](factory.createPersistenceEngine(), factory.createLeaderElectionAgent(this))case _ =>// 不做持久化(new BlackHolePersistenceEngine(), new MonarchyLeaderAgent(this))}persistenceEngine = persistenceEngine_leaderElectionAgent = leaderElectionAgent_
  • 1

RECOVERY_MODE由spark.deploy.recoveryMode配置,默認(rèn)為NONE:

private val RECOVERY_MODE = conf.get("spark.deploy.recoveryMode", "NONE")

接下來,我們來深入講解下FILESYSTEM和ZOOKEEPER這兩種recoveryMode。

FILESYSTEM

FILESYSTEM recoveryMode下,集群的元數(shù)據(jù)信息會保存在本地文件系統(tǒng)。而Master啟動后則會立即成為Active的Master。

case "FILESYSTEM" =>val fsFactory =new FileSystemRecoveryModeFactory(conf, serializer)(fsFactory.createPersistenceEngine(), fsFactory.createLeaderElectionAgent(this))
  • 1
  • 2

FileSystemRecoveryModeFactory會生成兩個對象,一個是FileSystemPersistenceEngine,一個是MonarchyLeaderAgent:

private[master] class FileSystemRecoveryModeFactory(conf: SparkConf, serializer: Serializer)extends StandaloneRecoveryModeFactory(conf, serializer) with Logging {val RECOVERY_DIR = conf.get("spark.deploy.recoveryDirectory", "")def createPersistenceEngine(): PersistenceEngine = {logInfo("Persisting recovery state to directory: " + RECOVERY_DIR)new FileSystemPersistenceEngine(RECOVERY_DIR, serializer)}def createLeaderElectionAgent(master: LeaderElectable): LeaderElectionAgent = {new MonarchyLeaderAgent(master)} }
  • 1
  • 2

FileSystemRecoveryModeFactory

我們先來講解下FileSystemRecoveryModeFactory:

private[master] class FileSystemPersistenceEngine(val dir: String,val serializer: Serializer)extends PersistenceEngine with Logging {// 新建一個目錄new File(dir).mkdir()// 持久化對象,// 將對象序列化的寫入到文件override def persist(name: String, obj: Object): Unit = {serializeIntoFile(new File(dir + File.separator + name), obj)}// 去持久化override def unpersist(name: String): Unit = {val f = new File(dir + File.separator + name)if (!f.delete()) {logWarning(s"Error deleting ${f.getPath()}")}}// 讀取,// 根據(jù)文件名反序列化出override def read[T: ClassTag](prefix: String): Seq[T] = {val files = new File(dir).listFiles().filter(_.getName.startsWith(prefix))files.map(deserializeFromFile[T])}// 序列化到文件的實(shí)現(xiàn)private def serializeIntoFile(file: File, value: AnyRef) {// 生成新文件val created = file.createNewFile()if (!created) { throw new IllegalStateException("Could not create file: " + file) }// 輸出文件流val fileOut = new FileOutputStream(file)var out: SerializationStream = nullUtils.tryWithSafeFinally {// 根據(jù)輸出文件流 生成 輸出序列化流out = serializer.newInstance().serializeStream(fileOut)// 將值通過輸出序列化流寫入文件out.writeObject(value)} {// 關(guān)閉輸出文件流fileOut.close()if (out != null) {out.close()}}}// 從文件反序列化的實(shí)現(xiàn)private def deserializeFromFile[T](file: File)(implicit m: ClassTag[T]): T = {// 輸入文件流val fileIn = new FileInputStream(file)var in: DeserializationStream = nulltry {// 根據(jù)輸入文件流 生成 輸入序列化流in = serializer.newInstance().deserializeStream(fileIn)// 從文件反序列化讀取對象in.readObject[T]()} finally {// 關(guān)閉輸入文件流fileIn.close()if (in != null) {in.close()}}}}

MonarchyLeaderAgent

@DeveloperApi trait LeaderElectionAgent {val masterInstance: LeaderElectabledef stop() {} }@DeveloperApi trait LeaderElectable {def electedLeader(): Unitdef revokedLeadership(): Unit }// 選舉代理的單點(diǎn)實(shí)現(xiàn) // 總是啟動最初的Master private[spark] class MonarchyLeaderAgent(val masterInstance: LeaderElectable)extends LeaderElectionAgent {masterInstance.electedLeader() }
  • 7

ZOOKEEPER

ZOOKEEPER recoveryMode下,集群的元數(shù)據(jù)信息會保存在ZooKeeper中。ZooKeeper會在備份的Master中選舉出新的Master,新的Master在啟動后會從ZooKeeper中獲取數(shù)據(jù)信息并且恢復(fù)這些數(shù)據(jù)。

case "ZOOKEEPER" =>logInfo("Persisting recovery state to ZooKeeper")val zkFactory =new ZooKeeperRecoveryModeFactory(conf, serializer)(zkFactory.createPersistenceEngine(), zkFactory.createLeaderElectionAgent(this))

ZooKeeperRecoveryModeFactory會生成兩個對象,一個是ZooKeeperPersistenceEngine,一個是ZooKeeperLeaderElectionAgent:

private[master] class ZooKeeperRecoveryModeFactory(conf: SparkConf, serializer: Serializer)extends StandaloneRecoveryModeFactory(conf, serializer) {def createPersistenceEngine(): PersistenceEngine = {new ZooKeeperPersistenceEngine(conf, serializer)}def createLeaderElectionAgent(master: LeaderElectable): LeaderElectionAgent = {new ZooKeeperLeaderElectionAgent(master, conf)} }
  • 1

ZooKeeperPersistenceEngine

我們先來講解下ZooKeeperPersistenceEngine:

private[master] class ZooKeeperPersistenceEngine(conf: SparkConf, val serializer: Serializer)extends PersistenceEnginewith Logging {// 創(chuàng)建zk 及工作路徑private val WORKING_DIR = conf.get("spark.deploy.zookeeper.dir", "/spark") + "/master_status"private val zk: CuratorFramework = SparkCuratorUtil.newClient(conf)SparkCuratorUtil.mkdir(zk, WORKING_DIR)// 持久化對象,// 將對象序列化的寫入到zkoverride def persist(name: String, obj: Object): Unit = {serializeIntoFile(WORKING_DIR + "/" + name, obj)}// 去持久化override def unpersist(name: String): Unit = {zk.delete().forPath(WORKING_DIR + "/" + name)}// 讀取,// 根據(jù)文件名反序列化出override def read[T: ClassTag](prefix: String): Seq[T] = {zk.getChildren.forPath(WORKING_DIR).asScala.filter(_.startsWith(prefix)).flatMap(deserializeFromFile[T])}// 關(guān)閉zkoverride def close() {zk.close()}// 序列化到zk的實(shí)現(xiàn)private def serializeIntoFile(path: String, value: AnyRef) {// 序列化字節(jié)val serialized = serializer.newInstance().serialize(value)val bytes = new Array[Byte](serialized.remaining())serialized.get(bytes)// 寫入到zkzk.create().withMode(CreateMode.PERSISTENT).forPath(path, bytes)}// 從zk反序列化的實(shí)現(xiàn)private def deserializeFromFile[T](filename: String)(implicit m: ClassTag[T]): Option[T] = {// 從zk中得到數(shù)據(jù)val fileData = zk.getData().forPath(WORKING_DIR + "/" + filename)try {// 反序列化Some(serializer.newInstance().deserialize[T](ByteBuffer.wrap(fileData)))} catch {case e: Exception =>logWarning("Exception while reading persisted file, deleting", e)zk.delete().forPath(WORKING_DIR + "/" + filename)None}} }
  • 1
  • 2
  • 3

ZooKeeperLeaderElectionAgent

ZooKeeperLeaderElectionAgent被創(chuàng)建會調(diào)用start:

private def start() {logInfo("Starting ZooKeeper LeaderElection agent")zk = SparkCuratorUtil.newClient(conf)leaderLatch = new LeaderLatch(zk, WORKING_DIR)leaderLatch.addListener(this)leaderLatch.start()}
  • 1

leaderLatch.start(),啟動了leader的競爭與選舉。涉及到的ZooKeeper選舉實(shí)現(xiàn),已不在Spark源碼范疇,所以在這不再講解。

總結(jié)

  • Executor退出:向worker發(fā)送ExecutorStateChanged信號;worker接收到信號后向Master發(fā)送executorStateChanged信號并釋放該Executor資源;Matser收到信號后,改變該Executor狀態(tài),移除Web UI上該Executor的信息,若重試次數(shù)達(dá)到最大次數(shù),則移除該Application,否則重新調(diào)度。
  • Worker退出:ShutdownHookManager會調(diào)用killProcess殺死該所有的executor;Mastser利用心跳超時機(jī)制,得知Worker退出,改變該Worker狀態(tài),將該Worker上的Executor從Application信息中移除,將該Worker上的driver重啟或移除,從持久化引擎中移除該Worker。
  • Matser退出:FILESYSTEM recoveryMode下,集群的元數(shù)據(jù)信息會保存在本地文件系統(tǒng),而Master啟動后則會立即成為Active的Master;ZOOKEEPER recoveryMode下,集群的元數(shù)據(jù)信息會保存在ZooKeeper中,ZooKeeper會在備份的Master中選舉出新的Master,新的Master在啟動后會從ZooKeeper中獲取數(shù)據(jù)信息并且恢復(fù)這些數(shù)據(jù);除此之外還有用戶自定義的恢復(fù)機(jī)制和不做持久化的機(jī)制。

總結(jié)

以上是生活随笔為你收集整理的深入理解Spark 2.1 Core (八):Standalone模式容错及HA的原理与源码分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

日韩欧美99| 亚洲高清视频在线观看免费 | 在线观看免费观看在线91 | 九九免费在线视频 | 国产一二三四在线视频 | 精品国产99国产精品 | 91麻豆精品一区二区三区 | 99视频在线精品国自产拍免费观看 | 国产精品免费一区二区三区在线观看 | 日日干夜夜干 | 日韩高清一 | 五月天色中色 | 国产99一区视频免费 | 国产精品一码二码三码在线 | 99视频免费 | 黄色的网站免费看 | 国产精品午夜在线 | 中文字幕资源网 | 国产精品videossex国产高清 | 日韩在线视频国产 | 亚洲免费av在线播放 | 国产精品黑丝在线观看 | www日| 在线中文视频 | 91丨九色丨91啦蝌蚪老版 | 中文字幕一区二区三区在线观看 | 久久久久97国产 | 亚洲va欧美va人人爽春色影视 | 午夜国产成人 | 免费久久网 | 国产99视频在线观看 | 久久免费视频在线观看6 | 4438全国亚洲精品观看视频 | 久久久久99精品成人片三人毛片 | 久久综合精品一区 | 亚洲影视九九影院在线观看 | 亚洲成人午夜av | 色婷婷骚婷婷 | av专区在线 | 毛片播放网站 | 精品福利av| 久久久久久久毛片 | 久久精品网站免费观看 | www.久久视频 | 日韩精品一区二区电影 | 亚洲影院国产 | 成人免费视频视频在线观看 免费 | 国产午夜精品一区二区三区欧美 | 日韩av不卡在线观看 | 亚洲在线网址 | 99在线免费视频 | 91激情视频在线播放 | 久久久免费播放 | av久久在线 | 精壮的侍卫呻吟h | 狠狠网亚洲精品 | 日韩欧美一区二区三区视频 | 欧美黑人性猛交 | 狠狠干天天射 | 亚洲视频免费在线 | 亚洲另类久久 | 五月婷婷中文字幕 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 日韩69av | 激情在线免费视频 | 成人a视频片观看免费 | 人人爱夜夜操 | 国产一区二区在线免费视频 | 欧美日韩免费一区二区 | 国产特级毛片aaaaaa | 99精品视频免费看 | 国产成人一区二区三区久久精品 | 国产精品久久久久久久7电影 | 日韩成人免费在线观看 | 操操操影院 | 久久r精品| 青青河边草免费视频 | 视频高清| 国产毛片aaa | 久草在线手机观看 | 婷婷激情综合五月天 | 国产精品视频观看 | 免费a v在线 | 人人澡人人添人人爽一区二区 | 黄色精品一区二区 | 婷婷电影在线观看 | 久久一区二区免费视频 | 美女免费视频观看网站 | 日韩一二三 | 久热精品国产 | 久久黄网站 | 五月婷婷一区 | 国产精品丝袜久久久久久久不卡 | 日韩精品视频网站 | www.色婷婷| 久久在线视频在线 | 亚洲高清网站 | 亚洲激情在线播放 | 夜夜夜夜爽 | 婷婷久久综合九色综合 | 日韩免费不卡视频 | 久久久久久久久久久久亚洲 | 国产乱对白刺激视频在线观看女王 | 天天插综合网 | 日韩国产在线观看 | 国产精品午夜免费福利视频 | 五月婷色 | 人人澡人人舔 | 99re视频在线观看 | 久久国产露脸精品国产 | 久久九九影视网 | 一区二区三区四区不卡 | 五月激情综合婷婷 | 91高清在线 | 久久久国产精品亚洲一区 | 国产精品久久一区二区三区不卡 | 久久精品理论 | 久久久久久久久久国产精品 | 在线播放视频一区 | 一级片免费在线 | 国产一级片观看 | 日韩av黄| www.久久色.com| 69视频在线播放 | 国产一区二区高清 | 狠狠躁夜夜躁人人爽超碰91 | 黄a在线| 日韩小视频网站 | 超碰国产97 | 国产高清视频在线播放 | 在线观看免费91 | 国产视频首页 | 久草热视频 | 欧美激情在线网站 | 在线观看视频99 | 日韩一级精品 | 亚洲网站在线 | 视频一区二区精品 | 久久久九色精品国产一区二区三区 | 99精品久久久久久久久久综合 | 99久久9 | 夜夜嗨av色一区二区不卡 | 粉嫩av一区二区三区四区 | 日韩 精品 一区 国产 麻豆 | 精品国产1区2区 | 精品久久美女 | 夜夜夜精品 | 激情图片久久 | 欧美精品久久久久久久亚洲调教 | 日韩免费电影在线观看 | 免费一级特黄录像 | 国产不卡高清 | 精品人妖videos欧美人妖 | 精品国产91亚洲一区二区三区www | 日韩中文字幕在线 | 亚洲精品99久久久久中文字幕 | 国产一区二区在线播放视频 | 午夜视频一区二区三区 | 国产亚洲综合精品 | 久久人网| 激情婷婷在线观看 | 日韩在线一区二区免费 | 亚洲六月丁香色婷婷综合久久 | 在线观看免费福利 | 久久毛片高清国产 | 狠狠网站 | 免费精品在线视频 | 久久久国产精品久久久 | 激情亚洲综合在线 | 成人毛片一区二区三区 | 中文字幕日韩电影 | 欧洲av不卡 | 日韩欧美一区二区三区黑寡妇 | 99精品色 | 91精品高清 | 久久视频99 | 97免费在线观看视频 | 久久老司机精品视频 | 黄p网站在线观看 | av在线最新 | 久久久毛片 | 91九色视频在线播放 | 91麻豆传媒| 在线免费观看黄网站 | 亚洲国产成人精品在线观看 | 国产99久久九九精品免费 | 丁香国产视频 | 美女网站在线免费观看 | 亚洲天堂网在线视频观看 | 婷婷六月天丁香 | 国产一二三区av | 在线精品播放 | 久久精品资源 | 国产精品入口麻豆 | 国产成人三级三级三级97 | 人人狠狠综合久久亚洲婷 | 在线观看mv的中文字幕网站 | 国产精品亚洲视频 | 国内精自线一二区永久 | 久久亚洲免费 | 国产视频在线观看一区二区 | 中文高清av | 808电影免费观看三年 | 天天操夜夜摸 | 国产黄色av网站 | 亚洲综合日韩在线 | 午夜精品久久久久 | 99精品在线看 | 在线免费观看国产精品 | 欧美激情精品久久久久久免费印度 | 免费观看一级 | 69久久久 | 久艹视频在线免费观看 | 一区二区三区手机在线观看 | 国产精品一二 | 69av免费视频 | 91九色国产视频 | 成人久久久久久久久 | 美女网站在线播放 | 亚洲国产精品电影 | 欧美另类激情 | 久久99精品热在线观看 | 欧美日韩高清在线 | av在线电影网站 | 色噜噜在线观看 | 欧美日韩精品在线一区二区 | 96av麻豆蜜桃一区二区 | 欧美性脚交| 国产高清精 | 四虎视频 | 国产成人综合精品 | 欧美日韩国产一区二区三区在线观看 | 公与妇乱理三级xxx 在线观看视频在线观看 | 啪一啪在线| 精品久久五月天 | 午夜久久久精品 | 波多野结衣网址 | 人人爽久久久噜噜噜电影 | 日韩精品欧美专区 | 91av99| 伊人久久精品久久亚洲一区 | 欧美黑人性猛交 | 久久成人午夜视频 | 日韩毛片在线一区二区毛片 | av看片网| 久爱精品在线 | 超碰在线人人97 | 久草视频在线免费 | 成人久久18免费网站麻豆 | 日韩精品一区二区电影 | 伊人天堂av| 久久久私人影院 | 久久国产精品久久国产精品 | 国产精品免费大片视频 | 日韩欧美国产视频 | 日韩精品免费在线观看视频 | 午夜国产一区二区三区四区 | 国产精品美女久久久网av | 成人h视频在线播放 | 国产成人99av超碰超爽 | 天天干天天操天天搞 | 国产一区av在线 | 4438全国亚洲精品观看视频 | 成人毛片一区 | 亚洲黄色一级大片 | 亚洲精品一区二区18漫画 | 亚洲美女视频在线观看 | 久久久久综合视频 | 狠狠色噜噜狠狠狠狠2022 | 波多野结衣精品视频 | 国产麻豆精品传媒av国产下载 | 99精品在这里 | 久久久91精品国产一区二区三区 | 色香com.| 日狠狠| 麻豆久久 | 日韩高清成人 | 日韩在线激情 | 中文字幕精品视频 | 麻豆91网站| 992tv在线| 91麻豆.com| 在线精品观看国产 | 99超碰在线播放 | 亚洲精品在线一区二区 | 国产亚洲视频中文字幕视频 | 欧美日韩精品二区第二页 | 久久女教师 | 成人一区二区三区中文字幕 | 视频国产区 | 成人黄色毛片视频 | 国产无吗一区二区三区在线欢 | 久香蕉| 天天艹日日干 | 久9在线 | 久久99精品国产91久久来源 | 亚洲jizzjizz日本少妇 | 91视视频在线直接观看在线看网页在线看 | 成人在线观看你懂的 | 国产伦精品一区二区三区… | 亚洲精品xxxx | 在线免费观看欧美日韩 | 91麻豆精品久久久久久 | 亚洲三级性片 | 国产高潮久久 | 综合久久久久久久 | 久久这里只有精品视频首页 | 日韩视频中文字幕在线观看 | 国产1级视频 | 免费日p视频 | 国产黑丝一区二区三区 | 日韩欧美一区二区三区视频 | 最新国产精品拍自在线播放 | 亚洲天堂网站视频 | 久久a免费视频 | 狠狠干狠狠色 | 伊人天天狠天天添日日拍 | 精品一区 在线 | 国产精品久久久久久久久费观看 | 国产99久久九九精品免费 | 中文字幕高清免费日韩视频在线 | 久久精品国产精品亚洲精品 | 国产精品久久嫩一区二区免费 | 欧美性生活久久 | 久久久亚洲网站 | 久久久久久久久久久久电影 | 日韩在线观看三区 | 国产精品美女久久久免费 | 91精品国产欧美一区二区 | 最新超碰在线 | 亚洲精品国偷拍自产在线观看 | 国产99久久久国产精品免费看 | 中文字幕av播放 | 日产av在线播放 | 成人免费在线看片 | 日本公乱妇视频 | 久久精品久久国产 | 亚洲美女视频网 | 久久一及片| 午夜视频在线观看一区二区三区 | 精品久久视频 | 国产一级视频在线观看 | 在线看片日韩 | 四虎成人精品永久免费av九九 | 久久中文字幕在线视频 | av综合av| 五月天天色 | 日韩av网页 | 免费人成网 | 91视频在线观看大全 | 麻豆视频免费看 | 菠萝菠萝蜜在线播放 | 日韩免费高清 | 亚洲三级影院 | 国产第一页在线观看 | 国产精品久久影院 | 国产99中文字幕 | 国产字幕在线观看 | 国产一区二区视频在线播放 | 精品亚洲免费 | 日韩 国产 | 国内外成人免费在线视频 | 免费91在线 | 成人小视频在线免费观看 | 天天av天天 | 美女网站免费福利视频 | 国产精品3区 | 国产一级做a爱片久久毛片a | 91麻豆文化传媒在线观看 | 亚洲精品动漫在线 | www久久久久 | 91麻豆看国产在线紧急地址 | 2024国产在线| 国产精品区二区三区日本 | 国产日本亚洲高清 | 亚洲天堂网视频 | 亚洲精品视频在线观看网站 | 国产在线播放一区二区 | 欧美91视频 | 九九爱免费视频在线观看 | 久久久精品一区二区三区 | 久久国产露脸精品国产 | 午夜精品视频福利 | 欧美日韩国产二区三区 | 伊人色**天天综合婷婷 | 久草网站 | 久久av中文字幕片 | 亚洲成人av在线电影 | 国产黄色在线观看 | 亚洲一区日韩在线 | 国产精品亚洲视频 | 在线观看色视频 | 高清不卡一区二区在线 | 91精品视频一区二区三区 | 日韩精品在线视频 | 日韩精品中文字幕在线观看 | 国产黄色片久久久 | 国产色视频123区 | 亚洲国产精彩中文乱码av | 成人黄色电影在线 | 国色天香在线观看 | 五月开心婷婷 | 五月婷婷天堂 | 在线成人免费电影 | 婷婷精品国产一区二区三区日韩 | 一本一道久久a久久精品蜜桃 | 国产中文自拍 | 香蕉视频啪啪 | 久久久综合九色合综国产精品 | 国产中文字幕视频在线观看 | 午夜av在线免费 | 亚洲日本国产 | 99精品一区二区 | 婷婷色影院| 欧美日韩中文字幕综合视频 | 伊人久久一区 | 91麻豆精品国产91久久久使用方法 | 五月色综合| 免费观看日韩av | 精品一二 | 最近中文字幕大全 | 天无日天天操天天干 | 人人精久| 国产亚洲小视频 | 贫乳av女优大全 | 国产在线精品一区 | 亚洲人成精品久久久久 | 999在线精品| 国产一级黄色av | 九九免费精品视频在线观看 | 黄色日本免费 | 中文在线√天堂 | 三级av中文字幕 | 国产黄大片在线观看 | 国产色在线视频 | 国产一级视频在线免费观看 | 色综合久久久久综合 | www.五月天婷婷.com | 综合色久 | 国产福利精品视频 | 国产中文欧美日韩在线 | 成人影音av | 国产精品国产三级国产aⅴ9色 | 99精品视频在线观看视频 | 成人黄色电影在线观看 | 黄色aaaaa | 97偷拍视频 | 国产亚洲成av人片在线观看桃 | 99精品视频免费看 | 草莓视频在线观看免费观看 | 成人黄色在线电影 | 国产欧美在线一区 | 久草新在线 | 婷婷精品 | 三上悠亚在线免费 | 在线三级播放 | 欧美一区二区免费在线观看 | 免费看亚洲毛片 | 亚洲免费永久精品国产 | 日本女人b | 久久成人高清视频 | 欧美福利网站 | 精品欧美小视频在线观看 | 午夜精品一区二区三区在线观看 | 免费看黄在线看 | 日日躁你夜夜躁你av蜜 | 精品成人在线 | 手机看片中文字幕 | a黄色影院| 国内视频| 久久精品a | 91九色porny蝌蚪视频 | 成人小视频免费在线观看 | 97超碰人人澡人人 | av品善网| 97精品国产aⅴ | 国产精品一区二区久久 | 久久黄色小说视频 | 美女黄濒| 狠狠操天天射 | 成年美女黄网站色大片免费看 | 久久高清视频免费 | 成人精品一区二区三区电影免费 | 亚洲1区 在线| 狠狠干婷婷色 | 日韩精品视频网站 | 啪啪激情网 | 久久免费视频这里只有精品 | 精品在线观看国产 | 国产精品久久久久婷婷 | 草在线视频 | 久久在线影院 | 久久婷婷视频 | 久久久精品一区二区三区 | 日韩精品视频免费看 | 黄色在线网站噜噜噜 | 久久精品久久99精品久久 | 天天草天天| 日韩影片在线观看 | 久草视频99| 婷婷色网视频在线播放 | 久久综合桃花 | 在线 欧美 日韩 | 欧美一区二区日韩一区二区 | 蜜臀久久99静品久久久久久 | 偷拍精品一区二区三区 | 丁香婷婷深情五月亚洲 | 最新国产精品久久精品 | 超碰资源在线 | 亚洲清纯国产 | 亚洲国产精品一区二区尤物区 | 欧美性另类 | 免费在线色电影 | 91喷水| 国产精品999久久久 久产久精国产品 | 亚洲成人精品在线观看 | 亚洲草视频| 懂色av懂色av粉嫩av分享吧 | 国产精品一区二区三区四 | 国内成人av | 国产精品自产拍在线观看网站 | 天天天干天天射天天天操 | 亚洲欧美国产精品久久久久 | 久草在线电影网 | av色影院 | 日韩精品字幕 | 久久伊人操 | 久久国产视频网站 | 五月天亚洲精品 | 天天天天干 | 亚洲综合成人在线 | 国产一区二区三区久久久 | 91精品成人| 色资源二区在线视频 | 99视频精品免费视频 | 91九色蝌蚪 | 亚洲精品中文在线资源 | 欧美日韩成人 | 九草在线观看 | 成人久久影院 | 国产色拍拍拍拍在线精品 | 中文av日韩 | 91亚洲精品国产 | 91在线观看高清 | 看黄色91| 在线视频电影 | 在线视频婷婷 | 天天搞天天干天天色 | 亚洲狠狠操 | 六月激情网 | 国产 日韩 中文字幕 | 日韩一区二区免费视频 | 中国成人一区 | 久久久久久久久精 | 在线国产中文字幕 | 国产精品伦一区二区三区视频 | 欧美激情va永久在线播放 | 国产99久久九九精品 | 久久综合导航 | 亚洲精品婷婷 | 少妇性aaaaaaaaa视频 | 人人插人人 | 亚洲专区在线播放 | 不卡日韩av | 天天插天天 | zzijzzij亚洲成熟少妇 | 91看毛片 | 久草在线高清 | 亚洲国内在线 | 天天躁日日躁狠狠躁av麻豆 | 久久久久久在线观看 | 国产精品伦一区二区三区视频 | 天天天色综合a | 色婷婷激情网 | 精品国产一区二区三区久久久蜜臀 | 久草在线视频首页 | 免费观看www小视频的软件 | 久久夜色精品国产欧美乱 | 美女免费网视频 | 九色琪琪久久综合网天天 | 欧美成人亚洲成人 | 久久久久久久久毛片精品 | 日本h视频在线观看 | 国产中文字幕91 | 99久久精品免费看国产 | 亚洲aⅴ乱码精品成人区 | 综合激情伊人 | 黄色在线小网站 | 成年美女黄网站色大片免费看 | 免费视频97| 久久天天操 | 国产精品久久久久久模特 | 国产一区二区三区四区在线 | 亚洲欧洲精品久久 | 激情文学丁香 | 综合久久2023 | 国产成人在线观看免费 | 2019精品手机国产品在线 | 玖操| 成人h在线 | 免费精品视频在线 | 午夜aaaa | 国产亚洲午夜高清国产拍精品 | 日日干夜夜草 | 在线国产视频 | 99一级片 | 婷婷在线观看视频 | 97国产精品久久 | 久久色网站 | 碰碰影院 | 欧美福利视频一区 | 日韩在线在线 | 欧洲一区二区在线观看 | 在线免费观看黄色 | 永久免费在线 | 免费观看高清 | 亚洲在线网址 | av成年人电影 | 国产一区视频在线观看免费 | 亚洲精品视频在线观看网站 | 精品一区二区三区四区在线 | 婷婷伊人综合亚洲综合网 | 久草国产精品 | japanese黑人亚洲人4k | 狠狠色狠狠色综合日日92 | 天堂久久电影网 | 久草久草在线 | 最近高清中文字幕在线国语5 | 国产精品久久久久9999吃药 | 四虎永久免费在线观看 | 欧美va在线观看 | 欧美日韩免费在线观看视频 | 国产香蕉视频在线观看 | 二区视频在线观看 | 亚洲精品免费看 | 欧美日韩另类在线观看 | 99视频在线免费看 | 最新中文字幕在线资源 | 天天做日日做天天爽视频免费 | 中文av字幕在线观看 | 日韩一二三区不卡 | 韩国av三级 | 九色免费视频 | 欧美一二区在线 | 国产自制av| 久久久伦理 | 欧美激情精品久久久 | 中文字幕在线观看国产 | 久久综合偷偷噜噜噜色 | 综合网在线视频 | 久久久久久中文字幕 | 久久久久北条麻妃免费看 | 99九九免费视频 | 丁香久久久 | 免费久久网站 | 久久图| 一级淫片在线观看 | 国产黄色在线网站 | 精品视频久久 | 激情五月色播五月 | 福利精品在线 | 久久久久久久久久久久久国产精品 | 伊人婷婷 | 精品国产99国产精品 | 久久婷五月| 国产一区二区高清视频 | 91在线麻豆 | 国产亚洲精品久久久久久久久久久久 | av在线免费播放网站 | 日韩三级免费观看 | 亚洲人成精品久久久久 | 国产一区二区三区 在线 | www.天天射.com| 欧美少妇18p | 欧美性久久久 | 久久免费高清视频 | 4438全国亚洲精品观看视频 | 夜夜躁狠狠躁日日躁 | 美女精品久久久 | 91人网站 | 视频一区二区在线 | 久久综合国产伦精品免费 | 欧美成亚洲 | 精品1区2区3区 | 成人午夜电影在线播放 | 成人免费观看完整版电影 | 国产精品成人在线观看 | 天天射,天天干 | 国产精品久久影院 | 亚洲精品在线网站 | 精品欧美一区二区三区久久久 | 久久看片网 | 国产毛片久久久 | 国产日产精品一区二区三区四区 | 手机av资源 | 99热精品国产 | 亚洲精品一区二区三区新线路 | 国产欧美最新羞羞视频在线观看 | 国产拍在线 | 97干com| 欧美福利网址 | 久久成人免费 | 最新国产精品拍自在线播放 | 99理论片| 黄色av电影 | 久久午夜精品影院一区 | 中文字幕精品一区二区三区电影 | 91大神电影 | 国产一区二区高清视频 | 性色在线视频 | 五月婷婷久 | 亚洲无毛专区 | 中文字幕成人在线观看 | 日韩视频免费在线 | 人人干97 | 国产午夜精品一区二区三区在线观看 | 丁香婷婷色月天 | 精品国产乱码一区二区三区在线 | 97超视频在线观看 | 深爱激情五月网 | 亚洲精品午夜一区人人爽 | 精品视频免费久久久看 | 久久久.com | 在线观看欧美成人 | 久久男人视频 | 久久国产欧美日韩 | 人人草在线视频 | 中文字幕日韩有码 | 五月天综合网站 | 一级片观看 | 色视频网站在线观看一=区 a视频免费在线观看 | 一区二区中文字幕在线观看 | 黄色大片日本免费大片 | 九九九九九精品 | 91女子私密保健养生少妇 | 亚洲人人精品 | 99精品视频在线观看视频 | 91在线观看视频 | 一区二区久久 | 婷五月激情 | 黄网站免费看 | 中文字幕在线播放一区 | 欧美国产高清 | 国产精品视频 | 在线观看日韩中文字幕 | 99热在线这里只有精品 | 西西人体www444| 黄网站www | 亚洲精品一区二区三区新线路 | 操操碰| 一区二区三区在线观看中文字幕 | 日批视频国产 | 成人午夜片av在线看 | 99久久99久国产黄毛片 | 亚洲涩涩网站 | 99 久久久久 | 国内精品亚洲 | 日韩区在线观看 | 中文字幕av在线不卡 | 国产在线传媒 | 一级a毛片高清视频 | 国产精品久久久久一区二区三区共 | 精品国产一二三 | 天天操偷偷干 | 午夜久久影视 | 91日韩精品一区 | 三级黄色a | 国产小视频福利在线 | 91大神视频网站 | 精品视频免费 | 毛片播放网站 | 国产视频精选在线 | 日韩精品一区二区三区中文字幕 | 福利视频导航网址 | 国产网站av| 色婷婷亚洲精品 | 四虎国产视频 | 一区二区 精品 | 久久99九九99精品 | 在线观看成人av | 欧美日韩不卡一区二区 | 9999在线观看 | 精品人人人 | 日本韩国精品在线 | 久草免费在线观看 | 国产原创在线视频 | 国产精品久99 | 成人精品视频久久久久 | av在线收看 | 97人人网| 91久久丝袜国产露脸动漫 | 不卡av电影在线 | 午夜视频免费在线观看 | 狠狠操狠狠干2017 | 国产五月天婷婷 | 亚洲资源网 | 最近的中文字幕大全免费版 | 黄色三级在线 | 成人免费在线播放 | 色综合天天狠天天透天天伊人 | 亚洲劲爆av | 免费在线观看黄色网 | 日韩精品一区二区三区三炮视频 | 69国产精品视频 | 久久婷婷亚洲 | 亚洲a成人v | 亚洲精品tv久久久久久久久久 | 99精品一区二区三区 | 国产精品九九九 | 国产视频69 | 日韩午夜视频在线观看 | 国产丝袜制服在线 | 日韩中文字幕第一页 | 日本一区二区高清不卡 | 91精品国自产在线观看欧美 | 国产精品久久久久久麻豆一区 | 最新av在线播放 | 久热电影| 欧洲一区二区在线观看 | 国产99区| 美女视频a美女大全免费下载蜜臀 | 波多野结衣亚洲一区二区 | 国产理伦在线 | 久久精品九色 | 久草青青在线观看 | 五月婷婷视频在线观看 | 免费aa大片| 日本亚洲国产 | 在线观看91视频 | 中文字幕在线观看第一页 | 九九在线播放 | 国产精品美女久久久久久久 | 亚洲精品动漫成人3d无尽在线 | 91视频麻豆 | 久久久人人爽 | 九九热国产 | www免费看 | 欧美另类重口 | 2019中文最近的2019中文在线 | 91在线视频一区 | 在线观看日本高清mv视频 | 国产成人精品久久二区二区 | 日韩视频图片 | 国产小视频免费观看 | 久久在线免费视频 | 午夜久久久影院 | 免费精品国产 | 免费观看国产精品视频 | 99精品久久久久久久久久综合 | 蜜臀av.com | 91精品视频免费看 | 五月婷婷久久丁香 | 国产成人久久av | 亚洲在线视频播放 | 日本不卡一区二区三区在线观看 | 天天夜夜亚洲 | 在线日韩中文 | 国产高清免费观看 | 国产专区视频在线 | 久久视频| 亚洲精品一区二区网址 | 国产精品一区二区久久久 | 99午夜 | 国产精品久久久久久久久免费 | 国产二区视频在线观看 | 在线播放日韩av | 成人免费观看av | 国产成人精品一区二三区 | 国产色爽| 欧美日本在线视频 | www.色就是色| 美女一级毛片视频 | 亚洲欧洲成人精品av97 | 久久久久国产视频 | 99欧美视频 | 国产成人免费av电影 | 天天草av| 国产又粗又猛又爽又黄的视频先 | 国产丝袜美腿在线 | 国产在线91精品 | 91最新地址永久入口 | 中文字幕资源网 国产 | 91麻豆网 | 天天曰夜夜操 | 国产福利一区在线观看 | 91亚洲欧美激情 | 欧美日韩国产精品一区二区亚洲 | av在线免费播放网站 | 狠狠色丁香婷婷综合视频 | 色com网| 久久你懂得 | 婷婷午夜激情 | 国产日韩视频在线播放 | 奇米影视777影音先锋 | 久久综合福利 | 日本爽妇网 | 成 人 黄 色 视频播放1 | 伊人五月天av | 视频二区在线视频 | 在线 精品 国产 | 色婷婷一 | 午夜av一区二区三区 | 中文一区在线观看 | 国产精品1区2区在线观看 | 亚洲精品一区二区18漫画 | 天天摸天天舔天天操 | 日韩成人免费在线电影 | 免费视频 三区 | 国产成人一区二区啪在线观看 | 国产在线观 | 中文字幕在线资源 | 8x成人在线 | 婷婷天天色| 四虎影视www | 免费成人av在线看 | 国产中文字幕第一页 | 一区二区激情 | 日韩二区精品 | 色综合久久久久综合体桃花网 | 99久久精品午夜一区二区小说 | 成人黄色短片 | 国产黄色片在线免费观看 | 久久黄色影视 | 在线观看午夜av | 在线观看久 | 五月天六月丁香 | 国产一级a毛片视频爆浆 | 久久性生活片 | 夜夜骑首页 | 日本aaaa级毛片在线看 | 欧美污污视频 | 国产 亚洲 欧美 在线 | jizz18欧美18| 中文字幕国产一区二区 | 97福利视频| 人人揉人人揉人人揉人人揉97 | 九九av| 中文字幕在线观看一区二区三区 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 99久久婷婷国产综合亚洲 | 91自拍视频在线观看 | 久久成人免费视频 | 天天摸天天舔天天操 | 久久久久欧美精品999 | 欧美男同视频网站 | 日韩二区在线播放 | 成人黄色在线观看视频 | 日本少妇久久久 | 成 人 黄 色 免费播放 | 欧美成人精品三级在线观看播放 | 久久九九国产精品 | 91久久奴性调教 | 国产区在线视频 | 久久深夜福利免费观看 | 日韩手机在线观看 | www.天天色 | 国产欧美久久久精品影院 | 91九色国产视频 | 国产资源网 | 精品久久免费 | 国产精品嫩草影视久久久 | 综合激情av| 国产国语在线 | 麻豆影视网 | 在线观看国产日韩 | 日韩av电影免费观看 | 最近中文字幕高清字幕免费mv | 在线99| 国产99久久九九精品 | 天天操综合网站 | 婷婷六月激情 | 国产高清免费在线播放 | 久久国产精品99久久久久久老狼 | 亚洲在线视频观看 | 香蕉网址 | 91大神在线观看视频 | 欧美一二三视频 | 天天操夜夜操国产精品 | 黄色小说视频网站 | 超碰在线天天 | 国产高清第一页 | 中文字幕欲求不满 | 国产资源精品在线观看 | 在线观看亚洲电影 | 91中文字幕在线 | 天天爱天天射天天干天天 | 久久看视频 | 免费看黄电影 | 欧美日韩国产网站 | 日本一区二区三区免费观看 | 国产美女网站在线观看 | 亚洲毛片一区二区三区 | 日日日日 | 亚洲成av人片在线观看无 | 看黄色.com | 九草在线观看 | 成年人在线免费看视频 | 看国产黄色片 |