青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 181, 文章 - 2, 評論 - 85, 引用 - 0
數據加載中……

網格實踐: 在 SOA/Web 服務環境中監視和發現網格服務-----使用 Globus Toolkit 4 中的開放源碼信息服務

本文將簡要介紹 Globus Monitoring 和 Discovery Service(MDS)。本文討論了構成 MDS 的組件,并介紹了在網格環境中其他服務通常是如何與 MDS 進行交互的。在閱讀本文之后,您應該可以配置 Globus MDS 并注冊服務,以及 為 MDS 配置其他信息提供者。您將學習如何組織信息并按照 MDS 的層次結構來配置多個 Index Services,從而構成網格的 Index Service。

Globus Monitoring 和 Discovery Service

Globus Monitoring 和 Discovery System(MDS)是一組 Web 服務,用來監視和發現網格中的可用資源和服務。顧名思義,人們通常會認為資源發現的過程就是發現新的資源。然而,在網格環境中,資源發現是確定哪些網格資源最適合完成某個任務的過程,要求時間最短,利用資源的效率最高。這個過程是從識別可以滿足或超過當前作業需求的資源開始的。這通常是可用資源的某個子集。

接下來,我們需要通過選擇最適合的資源來細化這個清單。這個選擇過程需要靜態和動態的信息。通常,靜態信息(例如 CPU 數量、時鐘速度、物理內存總量、虛擬內存以及可用磁盤空間)可以幫助確定哪些資源能夠滿足或超過任務的需求。在細化這個清單時,也要考慮一些動態信息。動態信息包括可用 CPU 的個數,隊列中等待執行的作業個數,當前資源的利用率。現在這已經成為一個調度問題,必須考慮業務策略、優先級和服務級別協定(SLA)。

調度并不是本文的重點,因此讓我們保留整個主題改天再來討論。Globus MDS 提供了有關資源的信息,這樣就可以制定智能的調度決策,從而最好且最有效地利用可用資源。MDS 也可以監視資源,在狀態發生變化時通知感興趣的團體,并根據預先定義的條件采取行動。







Index 和 Trigger Service

我們對 MDS 所搜集到的有關資源的狀態進行監視。搜集這些信息的 MDS 服務稱為 Index Service。MDS Index Service 的工作方式與注冊表非常相似。它搜集信息,然后將其作為資源屬性發布。它通過一個 Web 服務接口將所搜集的信息提供給客戶機。客戶機可以向 MDS 查詢信息,或者訂閱所感興趣的資源屬性,即表明如果這些屬性的值發生了變化,它們非常樂于被及時通知。這些信息代表了資源屬性的配置和狀態。Globus MDS 可以監視資源,并跟蹤所選擇的資源屬性。它可以通知訂閱者屬性值發生了變化。

這種功能是由另外一個名為 Trigger Service 的 MDS 服務提供的。它與 MDS Index Service 類似,都要從資源中搜集數據,但是它同時還要對所搜集的數據進行監視,這樣就可以在數據到達某個極限值時執行某些預定的操作。Trigger Service 的配置就是訂閱某些屬性,并指定當某個屬性值達到某個預定的極限時應該采取什么操作。要采取的操作可以非常復雜,例如當利用率太高時提供更多資源;也可以非常簡單,例如通知系統管理員某個文件系統已經滿了。MDS Trigger Service 通過 Web 服務提供此功能。客戶機使用這個 Web 服務來注冊觸發器事件。為了進行注冊,客戶機要提供程序的名字、一個 XPath 查詢表達式以及一個值。當 XPath 查詢所返回的值等于注冊時所提供的值時,就運行這個程序。MDS Trigger Service 通過對所搜集到的信息和在 MDS Trigger Service 注冊和配置文件中所指定的條件進行比較,來提供這種功能。


位置 1. Trigger Service 注冊和配置文件的位置
												
																		
$GLOBUS_LOCATION/etc/globus_wsrf_mds_trigger/trigger_registration_aggregation.xml

												
										

這個配置文件使用 XPath 查詢表達式的格式定義了一些規則。每個規則都有一個當滿足該條規則時所要執行的操作,以及該操作重復的頻率。下面這個例子實現了觸發器規則、相關操作以及頻率的語法,這些都是在前面的觸發器注冊和配置文件中指定的。


清單 1. Trigger Service 注冊的例子
												
																		
       <trigger:TriggerRuleType>
          <trigger:matchingRule>//*[local-name()='GLUECE']</trigger:matchingRule>
          <trigger:actionScript>glue-trigger-action.sh</trigger:actionScript>
          <trigger:minimumFiringInterval>600</trigger:minimumFiringInterval>
       </trigger:TriggerRuleType>

												
										







MDS Aggregation Framework

MDS Index 和 Trigger Service 都是在 MDS Aggregation Framework 之上構建的。MDS Aggregation Framework 用來構造搜集和聚集數據的高層服務。這些聚集器服務將從各種資源搜集來的信息匯集到一個集中的位置。這個概念的范圍很廣,從在某個容器中運行的所有服務的集中注冊表,到一個網格范圍的 Index Service,這可以通過配置 Index Service 與其他 Index Service 一起來存放內容。Index Service 可以按照一種層次化的方式進行配置,上層可以從底層的 Index Service 中提取信息。上層 Index Service 可以當作是這個層次中的上游資源,底層 Index Service 可以當作是下游資源。Index Service 在這個層次中的位置是在層次配置文件中使用上游和下游服務這兩個術語進行定義的。


位置 2. MDS 層次文件的位置
												
																		

$GLOBUS_LOCATION/etc/globus_wsrf_mds_index/hierarchy.xml 

												
										

這個層次文件指定了上游和下游 Index Service 的 URL。下面這個樣例聲明中包括了主機名、端口和默認的 Index Service 的標識。清單 2 顯示了 Globus Toolkit 4 測試環境中上游和下游服務的聲明。


清單 2. 上游和下游服務聲明的例子
												
																		

     <upstream>https://gt4-primary:8443/wsrf/
     services/DefaultIndexService</upstream>

     ...

     <downstream>https://gt4-secondary:8443/wsrf/
     services/DefaultIndexService</downstream>

												
										







MDS 資源屬性

正如前面介紹的,用戶可以向 Globus MDS 查詢資源的屬性。這些資源屬性代表了資源的配置和狀態。我們可以為永久資源和臨時資源維護一些屬性。Globus MDS 中的信息通過為資源數據關聯一個超時時間來保證其反映最新情況。這個值被稱為生命周期。MDS Index Service 中保存的所有服務都有一個相關的生命周期。如果在這個生命周期指定的時間內沒有更新,數據就過期了。這種方法可以通過只在相關的資源屬性進行更新時維護這些資源的配置和狀態,從而對臨時資源進行處理。當資源不再可用時,資源屬性就不會更新了,這些信息就會超時并被刪除。







MDS 資源特性

Globus MDS Index Service 信息是作為一組 Web Services Resource Framework(WSRF)資源屬性進行維護的。客戶機可以使用 WSRF get-property 和 WS-Notification subscribe 操作來查詢信息或在信息發生變化時收到通知。這些信息也可以使用命令行工具 wsrf-get-propertywsrf-query 進行查詢。Globus MDS Index Service 通過用 XML 格式提供所請求的信息來對查詢進行響應。下面這個例子執行了一個通用的 DefaultIndexService 查詢。–a 選項指定可以進行匿名驗證,–s 選項指定了服務的 URL,–z 選項定義了驗證類型可以是自己、主機或 none。請參閱 清單 3







XPath 查詢

查詢可能會產生非常大的 XML 文檔。XPath 可以用來幫助定位 XML 中的不同部分。下面讓我們來看幾個例子,以此展示怎樣擴充簡單查詢來搜集更詳細的信息。下面這個例子可以通過統計那些屬性匹配 FreeCPU 狀態的 ComputingElements,來查詢空閑 CPU 的個數。


清單 4. 一個查詢空閑 CPU 的 wsrf 查詢
												
																		
[globust@gt4-test sbin]$ wsrf-query -a -z none -s 
https://127.0.0.1:8443/wsrf/services/DefaultIndexService
 
"count(//*[local-name()='GLUECE']/glue:
ComputingElement/ glue:State/@glue:FreeCPUs)"

2

												
										

利用前面的例子,下面這個查詢展示了一個布爾檢查,看是否有指定個數的 CPU 可用。請參閱 清單 5







監視服務

我們已經討論了上面這些物理資源的概念,但是 MDS 還要監視服務的配置和狀態信息。MDS Index Service 會搜集有關容器上運行的其他服務的信息。服務指定了在 Aggregation Service 注冊信息時,要將哪些信息保存在 MDS 中。我們稍后會討論 Aggregation Service,但是首先介紹一下服務注冊這個主題。

服務可以使用 mds-servicegroup-add 命令進行注冊。每個注冊后的服務都有一個類似于前面介紹過的生命周期屬性的生命周期。如果某個服務的注冊項在一段指定的生命周期中沒有更新,就會過期。更新生命周期的一種方法是在后臺運行 mds-servicegroup-add 命令,這樣它就可以持續在 MDS 中更新服務注冊項并刷新服務的生命周期了。

MDS Aggregation Service 從所有的已注冊服務中搜集信息,并通過一個 Web 服務接口將這些服務信息提供給客戶機。Globus Toolkit 發行版本中提供了一個簡單的例子來展示如何在 MDS Aggregation Service 中注冊服務。這個例子使用了下面這個位置上的服務注冊定義文件。


位置 3. MDS 聚集注冊文件的位置
												
																		
$GLOBUS_LOCATION/etc/globus_wsrf_mds_
aggregator/example-aggregator-registration.xml

												
										

這個樣例聚集文件定義了服務的注冊表。每個注冊項都定義了一個網格資源、該資源應該注冊的服務組以及服務配置參數。這個文件可以與 mds-servicegroup-add 命令一起維護網格資源與 Index Service 之間的注冊。這個文件定義了 Index Service 的位置,它被稱為默認的 Service Group End Point Reference。


清單 6. Index Service URL 被定義為默認的 Service Group End Point Reference
												
																		
<defaultServiceGroupEPR>
   <wsa:Address>https://gt4-test.tacc.utexas.edu:8443/
   wsrf/services/DefaultIndexService</wsa:Address>
</defaultServiceGroupEPR>

												
										

example-aggregator-registration 文件中包含了 GRAM 和 RFT 服務的樣例注冊項。在 ServiceGroupRegistrationParameter 塊中定義的每個資源都要在 Index Service 中進行注冊。 清單 7 顯示了一個 GRAM 和 RFT Service 注冊項的例子。

MDS Aggregation Service 也可以對外部信息源的信息進行聚合。這些信息源可以代表本地服務可能需要的遠程資源。本地服務可以查詢 MDS Index Service 來定位遠程資源,并確定這些資源的狀態。舉例來說,下面這個例子就展示了將 Hawkeye 在默認的服務組中注冊為一個信息源。Hawkeye 是一個外部信息源的例子。它使用 Condor 技術(例如 ClassAds)來搜集和存儲有關 Condor 池中的資源的信息。清單 8 顯示了如何注冊 Hawkeye,這樣就可以通過 Index Service 來使用有關 Condor 的信息了。


清單 8. 聚集服務組的例子
												
																		
<ServiceGroupRegistrationParameters
   xmlns="http://mds.globus.org/servicegroup/client" >
    <RegistrantEPR	`
      xmlns:agg="http://mds.globus.org/aggregator/types"
      xmlns:gram="http://www.globus.org/namespaces/2004/10/gram/job"
      xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing">
      <wsa:Address>
          https://gt4-test:8443/wsrf/services/mds/test/subsource/IndexServiceEntry
      </wsa:Address>
      <wsa:ReferenceProperties>
         <gram:ResourceID>Hawkeye</gram:ResourceID>
      </wsa:ReferenceProperties>
   </RegistrantEPR>
   <RefreshIntervalSecs>600</RefreshIntervalSecs>
   <Content xsi:type="agg:AggregatorContent"
      xmlns:agg="http://mds.globus.org/aggregator/types">
      <agg:AggregatorConfig xsi:type="agg:AggregatorConfig">
         <agg:ExecutionPollType>
            <agg:PollIntervalMillis>60000</agg:PollIntervalMillis>
            <agg:ProbeName>globus-mds-cluster-hawkeye</agg:ProbeName>
         </agg:ExecutionPollType>
      </agg:AggregatorConfig>
      <agg:AggregatorData/>
   </Content>
</ServiceGroupRegistrationParameters> 

												
										

當服務進行注冊時,它們可以提供搜集服務信息的程序名。這個程序稱為執行聚集器,在清單 8 中是使用 ProbeName 的形式指定的。MDS Aggregator Service 可以查詢資源屬性信息,也可以訂閱資源屬性信息,這樣就可以推動后續的更新了。要注冊服務,可以使用位置 3 所給出的 example-aggregator-registration 文件作為 mds-servicegroup-add 命令的參數。下面這個例子展示了使用 mds-servicegroup-add 命令來注冊默認的 example-aggregator-registration.xml 文件中所定義的服務。–s 參數告訴 MDS 這些服務應該要進行注冊。請參閱 清單 9

可以使用 wsrf-query 命令驗證服務是否成功注冊。下面這個例子顯示了一個 ContainerRegistryService 查詢,用來獲得容器中正在運行的服務的地址。要在另外一個環境中使用這個查詢,請替換 URL 的主機名部分。


清單 10. 使用 wsrf-query 命令查詢注冊表地址的例子
												
																		
wsrf-query -s https://gt4-test.tacc.utexas.edu:8443/wsrf/
services/ContainerRegistryService
 "/*/*/*/*[local-name()='Address']"

												
										







MDS 聚集類型

我們已經介紹過 Web 服務會發布資源屬性。一個服務應該注冊的最小資源屬性集包括服務名、服務的版本號以及這個服務是何時啟動的。有些服務(例如 GRAM 或 RFT)會發布其他信息或更詳細的信息。MDS 中的信息是使用 3 個聚集器源(Aggregator Source)進行搜集的。這 3 個聚集源是 Query Aggregator、Subscription Aggregator 和 Execution Aggregator。

前面用來展示服務組注冊的那個例子就是一個 Execution Aggregator。Query Aggregation Source 會對注冊的服務進行挑選來產生信息。Subscription Aggregation Source 訂閱服務數據,這樣在服務數據值發生變化時,就可以接收到通知。Execution Aggregation Source 運行一個程序來搜集信息。發布資源屬性或用來搜集服務數據的程序有時稱為信息提供者(Informational Providers)。GRAM 就是一個信息提供者,因為它會發布有關網格資源的 CPU 和內存信息,以及與作業隊列和所提交的作業有關的調度器信息。類似地,可靠文件傳輸服務(RFT)也是一個信息提供者,它發布的是有關傳輸器和服務器的狀態信息。除了這些信息提供者(它們都是 Globus 發行版中的一部分)之外,MDS 還可以與其他外部信息提供者進行集成,例如 Ganglia 和 Hawkeye。

Ganglia 是一個分布式的監視系統,主要用來監視高性能系統,例如集群。Hawkeye 是一個監視系統,它使用 Condor 工具和 ClassAd 機制來收集有關分布式資源的信息。Ganglia 和 Hawkeye 使用 GLUE 模式的 CML 映射來搜集資源信息,并將這些信息發送到一個 GRAM 服務,這些信息將在這個服務中作為資源屬性發布。Ganglia 信息包括主機屬性,例如主機名、處理器、內存、操作系統以及文件系統,還有負載信息。如果在 gluerp XML 文件中定義并配置了適當的信息提供者,MDS 就可以匯集 Hawkeye 或 Ganglia 的信息。


位置 4. GLUE 資源提供者的位置
												
																		
$GLOBUS_LOCATION/etc/globus_wsrf_mds_
aggregator/example-aggregator-registration.xml

												
										

Globus 默認的配置說明沒有信息提供者。要指定 Hawkeye 或 Ganglia 作為信息提供者,請修改 gluerp.xml 文件中的適當項,這個文件位于 Globus 安裝目錄中的 etc/globus_wsrf_mds/usefulrp 目錄中。下面這個例子展示了指定 Hawkeye 作為信息提供者的正確定義。后面的例子將展示如何配置 Ganglia 作為信息提供者。


清單 11. 信息提供者注冊項
												
																		
<config xmlns="http://mds.globus.org/2004/10/gluerp-config">
   <defaultProvider>shell /usr/local/globus/globus-4.0.0/
   libexec/globus-mds-cluster-hawkeye </defaultProvider>
</config>

   ...

<config xmlns="http://mds.globus.org/2004/10/gluerp-config">
   <defaultProvider>java org.globus.mds.usefulrp.glue.
   GangliaElementProducer</defaultProvider>
</config>

												
										







webMDS

我們在前面已經看到可以使用 wsrf-query 命令來查詢 MDS 信息。實際上,MDS 信息也可以使用 webMDS 進行查看。webMDS 是一個用來查看 MDS 中所包含的資源屬性信息的前端。webMDS 是一個 servlet,它可以查詢 Globus MDS Index Service,并使用 XSLT 轉換對數據進行格式化,從而可以很好地在 Web 瀏覽器中顯示。

Web 管理員可以使用 HTML 表單選項定制 webMDS。他們可以配置不同的插件來搜集數據,并使用 XSLT 轉換對這些數據進行格式化,從而創建自己的定制視圖。webMDS 可以配置為從 MDS 中的各種源搜集信息,并使用 XSL 轉換對這些信息進行過濾。如果 Globus Toolkit 是使用默認配置安裝的,那么 webMDS 就可以查詢 MDS Index Service,而不用修改任何配置。我們測試環境中使用的 webMDS URL 如清單 12 所示。要在另外的環境中使用 webMDS,請使用您自己的主機名替換其主機名部分,如果您不是在默認端口上運行容器的,還需要修改端口號。


清單 12. webMDS URL
												
																		
http://gt4-test.tacc.utexas.edu:9080/webmds

												
										

可以通過編輯下面的 indexinfo 文件并修改默認的 URL 來改變 webMDS URL :


位置 5. MDS 聚集注冊文件的位置
												
																		
$GLOBUS_LOCATION/lib/webmds/conf/indexinfo

												
										

要部署 webMDS,首先為 Globus (GLOBUS_LOCATION) 和 Tomcat (CATALINA_HOME) 設置環境變量,然后使用下面的命令為 Tomcat 創建一個 context 文件:


清單 13. 創建 webMDS context 文件
												
																		
$GLOBUS_LOCATION/lib/webmds/bin/webmds-create-contex-file
  \ $CATALINA_HOME/conf/Catalina/localhost

												
										

在成功運行這個命令創建 context 文件之后,請重新啟動 Tomcat,以便使用新的配置信息。重新啟動 Tomcat 可以使用下面的命令:


清單 14. 重啟 Tomcat 容器
												
																		
$CATALINA_HOME/bin/shutdown.sh
…
$CATALINA_HOME/bin/startup.sh

												
										

重啟 Tomcat 容器之后,可以在瀏覽器的地址欄中鍵入 webMDS 的 URL(請參閱清單 12)來訪問 webMDS。這個 URL 中需要替換上您安裝使用的主機名和端口號。注意,這是 Tomcat 中運行 webMDS 的 URL,而不是在 Globus 容器中運行的 MDS 服務的 URL。

這個樣例表單是由 Globus 發行版提供的,用來展示 webMDS 的功能。也可以使用模板來創建新的定制請求。

通過 webMDS 來查詢 Index Service 可以顯示在 Index Service 中注冊的資源。每個服務都提供了一種資源類型、惟一標識符和一個鏈接(指向更詳細的信息)。選擇資源項可以產生有關資源的詳細信息。我們已經介紹過 GRAM 和 RFT 服務都在 Index Service 中進行了注冊。圖 1 是一個顯示與 RFT 服務有關的詳細信息的例子。


圖 1. RFT 服務的 webMDS 信息
RFT 服務的 webMDS 信息

如果 GRAM 配置用來與資源管理器一起使用,例如 LSF、PBS 或 Condor,那么每個資源都會存在這樣一個注冊項。

圖 2 和圖 3 顯示了與 LSF 服務有關的詳細信息。


圖 2. globus-mds-LSF 例子 1
globus-mds-LSF

圖 3. globus-mds-LSF 例子 2
LSF 服務組

圖 4 顯示了與 Condor 服務有關的詳細信息。


圖 4. globus-mds-condor_cluster 例子
Condor 服務組

webMDS 是 MDS Index Service 的一個簡單易用的接口。我們在前面已經展示了 mds-servicegroup-add 命令可以用來在 MDS 中注冊服務,聚集源可以配置為對來自服務和外部信息提供者的信息進行匯集。這些信息提供者運行了一個程序來搜集信息,它們都是 Execution Aggregators。這很容易展示,可以手工運行信息提供者,并驗證這些信息和格式與通過 webMDS 所提供的信息和格式完全相同。下面這個例子顯示了 Hawkeye 信息提供者的情況,這是由清單 8 中下面這一行定義的:

												
														<agg:ProbeName>globus-mds-cluster-hawkeye</agg:ProbeName>

												
										

請參見 清單 15







結束語

我們首先概要介紹了 Globus MDS,然后了解了某些底層服務的詳細知識。Index Service 是一個注冊表,負責搜集信息并以資源屬性的形式來發布這些信息。Trigger Service 使客戶機可以訂閱資源屬性,并在數據達到某個極限值時執行預定義的操作。這些服務都是構建在 Aggregation Service 之上的,后者也可以對來自外部信息源的信息進行聚集。這些信息可以匯集到一個集成的注冊表中,稱為網格 Index Service。Index Service 以編程方式向客戶機提供了資源屬性信息,這可以通過 Web 服務、命令行接口或瀏覽器來接收。

posted on 2006-04-17 04:00 wsdfsdf 閱讀(1107) 評論(0)  編輯 收藏 引用 所屬分類: 技術文章

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线免费观看日本一区| 久久久999精品| 蜜臀a∨国产成人精品| 久久精品亚洲一区二区三区浴池 | 国产欧美精品一区二区三区介绍| 欧美精品午夜| 国产精品乱码妇女bbbb| 国产乱码精品一区二区三区五月婷| 国产精品一区二区视频| 国产在线拍偷自揄拍精品| 亚洲国产乱码最新视频| 亚洲视频在线视频| 久久久一二三| 亚洲精品色婷婷福利天堂| 亚洲一区二区av电影| 久久九九电影| 欧美吻胸吃奶大尺度电影| 国产无遮挡一区二区三区毛片日本| 一色屋精品视频免费看| 亚洲精品国产精品国自产观看浪潮 | 在线观看福利一区| 亚洲视频一区二区| 老牛影视一区二区三区| 99re8这里有精品热视频免费 | 91久久黄色| 亚洲欧美日韩国产精品| 欧美韩日一区| 国产一区二区按摩在线观看| 日韩亚洲一区二区| 看欧美日韩国产| 亚洲影院色无极综合| 美女黄网久久| 国产婷婷色综合av蜜臀av| 亚洲久色影视| 免费亚洲电影在线| 小黄鸭视频精品导航| 国产精品v欧美精品v日韩精品 | 久久精品午夜| 99精品视频免费全部在线| 狼人社综合社区| 国产一区二区三区av电影| 亚洲一区亚洲二区| 亚洲人www| 免费在线观看日韩欧美| 国模私拍视频一区| 久久久久久久综合色一本| 亚洲一区久久| 国产精品日韩| 亚洲欧美国产高清| 一本色道久久综合亚洲精品不卡| 欧美a级大片| 亚洲激情综合| 亚洲国产另类久久久精品极度| 久久国产精品99国产精| 国产一区二区三区高清在线观看| 欧美亚洲三级| 亚洲欧美日韩综合aⅴ视频| 国产精品视频网| 欧美影院午夜播放| 香蕉尹人综合在线观看| 国产综合网站| 欧美刺激午夜性久久久久久久| 久久久久一区二区三区四区| 黄色成人免费观看| 欧美成人自拍| 欧美日韩中文另类| 午夜国产精品视频| 久久福利一区| 91久久亚洲| 一区二区三区高清| 国产伦精品一区二区三区在线观看| 午夜精品一区二区三区四区| 亚洲欧美日韩在线综合| 亚洲视频一区| 一本久久综合亚洲鲁鲁| 国产精品国产自产拍高清av| 亚洲欧美日韩另类| 午夜精品久久久| 黄色成人av| 亚洲人成小说网站色在线| 欧美区国产区| 欧美国产日产韩国视频| 先锋亚洲精品| 亚洲国产精品第一区二区| 久久精品一区二区三区中文字幕| 亚洲资源av| 国产一区二区中文| 欧美高清视频| 国产精品毛片| 欧美成人a∨高清免费观看| 欧美激情区在线播放| 亚洲欧美日韩国产精品| 久久久久www| 亚洲视频国产视频| 欧美在线高清| 亚洲视频一区二区| 久久精品国产99精品国产亚洲性色| 亚洲国产欧美国产综合一区 | 亚洲一二三级电影| 久久av一区二区| 亚洲图片欧洲图片av| 欧美在线免费一级片| 99热这里只有精品8| 欧美在线观看视频在线| 亚洲一区二区三区在线播放| 久久精品国产精品亚洲综合| 亚洲桃花岛网站| 久久综合狠狠综合久久综合88| 午夜欧美视频| 欧美日韩网址| 欧美黄色一区| 在线观看免费视频综合| 亚洲欧美精品一区| 亚洲午夜成aⅴ人片| 看欧美日韩国产| 久久精品av麻豆的观看方式| 欧美日韩在线精品| 亚洲欧美成人| 亚洲人成网站777色婷婷| 午夜久久福利| 亚洲一区亚洲| 欧美日韩免费观看一区=区三区| 久热re这里精品视频在线6| 国产精品卡一卡二| 在线午夜精品自拍| 亚洲最黄网站| 欧美国产视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲女性裸体视频| 亚洲自拍偷拍麻豆| 国产精品激情偷乱一区二区∴| 亚洲激情在线| 亚洲人成毛片在线播放| 欧美不卡在线| 亚洲人成小说网站色在线| 日韩一级在线观看| 欧美精选一区| 日韩一二三在线视频播| 在线亚洲精品| 国产精品免费久久久久久| 亚洲一级黄色片| 香蕉尹人综合在线观看| 国产欧美精品国产国产专区| 午夜亚洲性色福利视频| 久久久久成人精品免费播放动漫| 国产亚洲亚洲| 久久综合综合久久综合| 亚洲第一色中文字幕| 99国产精品久久久久老师| 欧美日韩一级黄| 亚洲欧美一区二区在线观看| 久久人人97超碰人人澡爱香蕉| 在线观看视频一区二区| 欧美国产精品v| 中文在线不卡| 久久亚洲精选| 99国产精品久久| 国产精品女主播一区二区三区| 欧美资源在线| 亚洲老板91色精品久久| 欧美影片第一页| 91久久久久久国产精品| 国产精品第一区| 久久躁狠狠躁夜夜爽| 亚洲六月丁香色婷婷综合久久| 亚洲欧美色婷婷| 亚洲成色www久久网站| 欧美日韩国产精品一区二区亚洲| 亚洲一区二区三区四区五区黄| 久久综合九色综合欧美狠狠| 亚洲乱码国产乱码精品精天堂 | 老牛国产精品一区的观看方式| 亚洲激情电影在线| 久久www成人_看片免费不卡| 亚洲国产精品福利| 国产精品美女久久久浪潮软件 | 国产一区二区电影在线观看| 欧美成人一区二区三区片免费 | 欧美午夜大胆人体| 久久久久国产精品一区三寸| 亚洲美女色禁图| 麻豆成人综合网| 亚洲人成网站影音先锋播放| 亚洲男人天堂2024| 亚洲福利一区| 国产女人aaa级久久久级| 欧美激情久久久久久| 欧美在线视频播放| 亚洲图片在线观看| 亚洲精品在线一区二区| 免费在线观看日韩欧美| 亚洲欧美视频一区| 亚洲精品欧美极品| 亚洲福利国产| 韩日视频一区| 国产欧美综合一区二区三区| 国产精品sm| 欧美日韩成人在线播放| 欧美第十八页| 欧美国产日本在线|