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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ceph 集群整体迁移方案

發布時間:2024/2/28 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ceph 集群整体迁移方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.





場景介紹:在我們的IDC中,存在著運行了3-6年的Ceph集群的服務器,這些服務器性能和容量等都已經無法滿足當前業務的需求,在購入一批高性能機器后,希望將舊機器上的集群整體遷移到新機器上,當然,是保證業務不中斷的前提下,再將舊機器下架回收。本文就介紹了一種實現業務不中斷的數據遷移方案,并已經在多個生產環境執行。


本文的環境均為:Openstack+Ceph 運行虛擬機的場景,即主要使用RBD,不包含RGW,MDS。虛機的系統盤(Nova),云硬盤(Cinder),鏡像盤(Glance)的塊均保存在共享存儲Ceph中。


環境準備

本文環境為 Openstack (Kilo) + Ceph(Jewel)

本文所用的環境包含一套完整的 Openstack 環境,一套 Ceph 環境,其中 Nova/Cinder/Glance 均已經對接到了 Ceph 集群上,具體節點配置如下:

主機名IP地址Openstack 組件Ceph 組件
con192.168.100.110nova,cinder,glance,neutronmon,osd*1
com192.168.100.111nova,neutronmon,osd*1
ceph192.168.100.112
mon,osd*1

在集群整體遷移完后,各個組件分布如下,也就是說,將運行于 con,com,ceph三個節點的 Ceph 集群遷移到 new_mon_1,new_mon_2,new_mon_3 這三臺新機器上。

主機名IP地址Openstack 組件Ceph 組件
con192.168.100.110nova,cinder,glance,neutron
com192.168.100.111nova,neutron
ceph192.168.100.112

new_mon_1192.168.100.113
mon,osd*1
new_mon_2192.168.100.114
mon,osd*1
new_mon_3192.168.100.115
mon,osd*1

在遷移之前,我們創建一個虛機,一個云盤,上傳一個鏡像,虛機此時正常運行,并將這這塊云盤掛載到虛機上:

[root@con ~(keystone_admin)]# nova list
+--------------------------------------+---------+--------+------------+-------------+-------------------------+
| ID ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | Name ? ?| Status | Task State | Power State | Networks ? ? ? ? ? ? ? ?|
+--------------------------------------+---------+--------+------------+-------------+-------------------------+
| 4f52191f-9645-448f-977b-80ca515387f7 | vm-test | ACTIVE | - ? ? ? ? ?| Running ? ? | provider=192.168.88.111 |
+--------------------------------------+---------+--------+------------+-------------+-------------------------+
[root@con ~(keystone_admin)]# cinder list
+--------------------------------------+--------+--------------+------+-------------+----------+--------------------------------------+
| ? ? ? ? ? ? ? ? ?ID ? ? ? ? ? ? ? ? ?| Status | Display Name | Size | Volume Type | Bootable | ? ? ? ? ? ? Attached to ? ? ? ? ? ? ?|
+--------------------------------------+--------+--------------+------+-------------+----------+--------------------------------------+
| 39c76d96-0f95-490c-b7db-b3da6d17331b | in-use | ?cinder-rbd ?| ?1 ? | ? ? None ? ?| ?false ? | 4f52191f-9645-448f-977b-80ca515387f7 |
+--------------------------------------+--------+--------------+------+-------------+----------+--------------------------------------+
[root@con ~(keystone_admin)]# ip netns exec `ip netns` ssh cirros@192.168.88.111
cirros@192.168.88.111's password:
$ lsblk
NAME ? MAJ:MIN RM ? ?SIZE RO TYPE MOUNTPOINT
vda ? ?253:0 ? ?0 ? ? ?1G ?0 disk
`-vda1 253:1 ? ?0 1011.9M ?0 part /
vdb ? ?253:16 ? 0 ? ? ?1G ?0 disk
$

Ceph 集群狀態:

[root@ceph cluster]# ceph -s
? ?cluster 166889ab-fa7b-4a07-83da-6dfc92913a3d
? ? health HEALTH_OK
? ? monmap e47: 3 mons at {ceph=192.168.100.112:6789/0,com=192.168.100.111:6789/0,con=192.168.100.110:6789/0}
? ? ? ? ? ?election epoch 174, quorum 0,1,2 con,com,ceph
? ? osdmap e57: 3 osds: 3 up, 3 in
? ? ? ? ? ?flags sortbitwise,require_jewel_osds
? ? ?pgmap v6577: 768 pgs, 3 pools, 45659 kB data, 23 objects
? ? ? ? ? ?178 MB used, 766 GB / 766 GB avail
? ? ? ? ? ? ? ? 768 active+clean

[root@ceph cluster]# ceph osd tree
ID WEIGHT ?TYPE NAME ? ? UP/DOWN REWEIGHT PRIMARY-AFFINITY
-1 0.74876 root default ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
-2 0.24959 ? ? host ceph ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
0 0.24959 ? ? ? ? osd.0 ? ? ?up ?1.00000 ? ? ? ? ?1.00000
-3 0.24959 ? ? host con ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1 0.24959 ? ? ? ? osd.1 ? ? ?up ?1.00000 ? ? ? ? ?1.00000
-4 0.24959 ? ? host com ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
2 0.24959 ? ? ? ? osd.2 ? ? ?up ?1.00000 ? ? ? ? ?1.00000

[root@ceph cluster]# ceph osd pool ls detail
pool 1 'volumes' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 58 flags hashpspool stripe_width 0
? ?removed_snaps [1~3]
pool 2 'vms' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 59 flags hashpspool stripe_width 0
? ?removed_snaps [1~3]
pool 3 'images' replicated size 2 min_size 1 crush_ruleset 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 60 flags hashpspool stripe_width 0
? ?removed_snaps [1~9]

OSD的數據遷移

本次遷移主要分為兩個組件的遷移,即 MON 和 OSD,這里我們先介紹 OSD 的數據遷移。相比遷移MON來說,OSD的數據遷移步驟更為單純一些,因為所有操作均在 Ceph 側執行,對 Openstack 來說是透明的。

原理簡介

由于CRUSH算法的偽隨機性,對于一個PG來說,如果 OSD tree 結構不變的話,它所分布在的 OSD 集合總是固定的(同一棵tree下的OSD結構不變/不增減),即對于兩副本來說: PG 1.0 => [osd.66, osd.33]

  • 當副本數減少時,PG 1.0 => [osd.66] ,也就是說會刪除在osd.33上的第二副本,而在 osd.66上的主副本是維持不變的,所以在降低副本數時,底層OSD實際上只刪除了一份副本,而并沒有發生數據的遷移。

  • 當副本數增加時,PG 1.0 => [osd.66, osd.33, osd.188, osd.111],也就是說四副本的前兩個副本依舊是之前的兩個副本,而后面增加的兩副本會從主副本osd.66將數據backfill到各自的OSD上。

遷移思路

  • 我們首先會將新的節點的所有OSD初始化完畢,然后將這些OSD?加入到另一棵osd tree下?(這里簡稱原先的集群的osd tree叫做old_tree,新建的包含新OSD的 osd tree 叫做 new_tree),這樣部署完畢后,不會對原有集群有任何影響,也不會涉及到數據遷移的問題,此時新的OSD下還沒有保存數據。

  • 導出 CRUSHMAP,編輯,添加三條 CRUSH rule:

  • ?? crush rule 0 (原先默認生成的): 從 old_tree 下選出size副本(這里size=2)。

    ?? crush rule 1 (新生成的第一條): 從 old_tree 下選出兩副本。對于副本數為2的集群來說,crush_rule_0 和 crush_rule_1 選出的兩副本是一樣的。

    ?? crush rule 2 (新生成的第二條): 從 old_tree 下選出兩副本,再從 new_tree 下選出兩副本。由**原理簡介第二段**可知, 由于 old_tree 下面的 OSD結構不變也沒有增加,所以 crush_rule_0 和 crush_rule_1 選出的前兩副本是**一樣的**。

    ?? crush rule 3 (新生成的第三條): 從 new_tree 下選出兩副本。 由于crush_rule_1 的第二次選擇為選出 new_tree下的前兩副本,這和 crush_rule_2 選出兩副本(也是前兩副本)其實是**一樣的**。

  • 注入新的CRUSHMAP后,我們做如下操作:

    ???將所有pool(當然建議一個pool一個pool來,后面類似) 的 CRUSH RULE 從? crush_rule_0 設置為 crush_rule_1 ,此時所有PG均保持active+clean,狀態沒有任何變化。

    ? ?? 將所有pool的副本數設置為4, 由于此時各個 pool 的CRUSH RULE 均為 crush_rule_1 ,而這個 RULE 只能選出兩副本,剩下兩副本不會被選出,所以此時所有PG狀態在重新 peer 之后,變為 active + undersized + degraded,由于不會生成新的三四副本,所以集群沒有任何數據遷移(backfill) 動作,此步驟耗時短暫。

    ??? 將所有pool的 CRUSH RULE 從 crush_rule_1 設置為 crush_rule_2,此時上一條動作中沒有選出的三四副本會從 new_tree 下選出,并且原先的兩副本不會發生任何遷移,整個過程宏觀來看就是在 old_tree -> new_tree 單向數據復制克隆生成了新的兩副本,而舊的兩副本沒有移動。此時生成新的兩副本耗時較長,取決于磁盤性能帶寬數據量等,可能需要幾天到一周的時間,所有數據恢復完畢后,集群所有PG變為 active+clean 狀態。

    ? ?? 將所有pool的 CRUSH RULE 從 crush_rule_2 設置為 crush_rule_3,此時所有PG狀態會變為 active+remapped,發生的另一個動作是,原先四副本的PG的主副本是在 old_tree 上的某一個OSD上的,現在這個PG的主副本變為 new_tree下的選出的第一個副本,也就是發生了主副本的切換。比如原先 PG 1.0 => [osd.a, osd.b, osd.c, osd.d] 在這步驟之后會變成 PG 1.0 => [osd.c, osd.d]。原先的第三副本也就是new_tree下的第一副本升級為主副本。

    ??? 將所有pool的副本數設置為2,此時PG狀態會很快變為 active+clean,然后在OSD層開始刪除 old_tree 下的所有數據。此時數據已經全部遷移到新的OSD上。

  • 遷移指令

    1.初始化新的OSD

    一定要記住:在部署目錄下的ceph.conf內添加 osd_crush_update_on_start =false,再開始部署新的OSD,并且一定要檢查新節點配置,包括但不限于: yum 源,免秘鑰配置,ceph的版本,主機名,防火墻,selinux,ntpntpntp,重要的時間對齊說三遍!

    部署新的OSD:

    ### 前往部署目錄
    cd /root/cluster
    echo "osd_crush_update_on_start = false " >> ceph.conf
    ceph-deploy --overwrite-conf osd prepare new_mon_1:sdb ?new_mon_2:sdb ?new_mon_3:sdb --zap-disk
    ceph-deploy --overwrite-conf osd activate ?new_mon_1:sdb1 ?new_mon_2:sdb1 ?new_mon_3:sdb1

    添加完這三個OSD后,集群總共有六個OSD,此時不會有數據遷移。結構如下:

    [root@ceph ~]# ceph osd tree
    ID WEIGHT ?TYPE NAME ? ? UP/DOWN REWEIGHT PRIMARY-AFFINITY
    -1 0.75000 root default ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    -2 0.25000 ? ? host ceph ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    0 0.25000 ? ? ? ? osd.0 ? ? ?up ?1.00000 ? ? ? ? ?1.00000
    -3 0.25000 ? ? host con ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    1 0.25000 ? ? ? ? osd.1 ? ? ?up ?1.00000 ? ? ? ? ?1.00000
    -4 0.25000 ? ? host com ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    2 0.25000 ? ? ? ? osd.2 ? ? ?up ?1.00000 ? ? ? ? ?1.00000
    3 ? ? ? 0 osd.3 ? ? ? ? ? ? ?up ?1.00000 ? ? ? ? ?1.00000
    4 ? ? ? 0 osd.4 ? ? ? ? ? ? ?up ?1.00000 ? ? ? ? ?1.00000
    5 ? ? ? 0 osd.5 ? ? ? ? ? ? ?up ?1.00000 ? ? ? ? ?1.00000

    構建新的new_root根節點,并將這三個新的OSD加入到新的根節點下(注意OSD和主機的物理對應關系):

    ceph osd crush add-bucket new_root ?root
    ceph osd crush add-bucket new_mon_1 host
    ceph osd crush add-bucket new_mon_2 host
    ceph osd crush add-bucket new_mon_3 host
    ceph osd crush move new_mon_1 root=new_root
    ceph osd crush move new_mon_2 root=new_root
    ceph osd crush move new_mon_3 root=new_root
    ceph osd crush add osd.3 0.25 host=new_mon_1
    ceph osd crush add osd.4 0.25 host=new_mon_2
    ceph osd crush add osd.5 0.25 host=new_mon_3

    此時,新的 TREE 結構如下:

    [root@ceph ~]# ceph osd tree
    ID WEIGHT ?TYPE NAME ? ? ? ? ?UP/DOWN REWEIGHT PRIMARY-AFFINITY
    -5 0.75000 root new_root ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    -6 0.25000 ? ? host new_mon_1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    3 0.25000 ? ? ? ? osd.3 ? ? ? ? ? up ?1.00000 ? ? ? ? ?1.00000
    -7 0.25000 ? ? host new_mon_2 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    4 0.25000 ? ? ? ? osd.4 ? ? ? ? ? up ?1.00000 ? ? ? ? ?1.00000
    -8 0.25000 ? ? host new_mon_3 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    5 0.25000 ? ? ? ? osd.5 ? ? ? ? ? up ?1.00000 ? ? ? ? ?1.00000
    -1 0.75000 root default ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    -2 0.25000 ? ? host ceph ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    0 0.25000 ? ? ? ? osd.0 ? ? ? ? ? up ?1.00000 ? ? ? ? ?1.00000
    -3 0.25000 ? ? host con ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    1 0.25000 ? ? ? ? osd.1 ? ? ? ? ? up ?1.00000 ? ? ? ? ?1.00000
    -4 0.25000 ? ? host com ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
    2 0.25000 ? ? ? ? osd.2 ? ? ? ? ? up ?1.00000 ? ? ? ? ?1.00000

    2.編輯 CRUSH MAP

    導出CRUSH MAP,并編輯添加三條新的 CRUSH RULE:

    ### 導出CRUSH MAP
    ceph osd getcrushmap -o map
    crushtool -d map -o map.txt
    ### 在map.txt 最后添加以下內容
    vim map.txt

    # rules
    rule replicated_ruleset {
    ? ? ? ?ruleset 0
    ? ? ? ?type replicated
    ? ? ? ?min_size 1
    ? ? ? ?max_size 10
    ? ? ? ?step take default
    ? ? ? ?step chooseleaf firstn 0 type host
    ? ? ? ?step emit
    }
    >>>>>>>>>>>>>> 添加開始 ?>>>>>>>>>>
    rule replicated_ruleset1 {
    ? ? ? ?ruleset 1
    ? ? ? ?type replicated
    ? ? ? ?min_size 1
    ? ? ? ?max_size 10
    ? ? ? ?step take default
    ? ? ? ?step chooseleaf firstn 2 type host
    ? ? ? ?step emit
    }
    rule replicated_ruleset2 {
    ? ? ? ?ruleset 2
    ? ? ? ?type replicated
    ? ? ? ?min_size 1
    ? ? ? ?max_size 10
    ? ? ? ?step take default
    ? ? ? ?step chooseleaf firstn 2 type host
    ? ? ? ?step emit
    ? ? ? ?step take new_root
    ? ? ? ?step chooseleaf firstn 2 type host
    ? ? ? ?step emit
    }
    rule replicated_ruleset3 {
    ? ? ? ?ruleset 3
    ? ? ? ?type replicated
    ? ? ? ?min_size 1
    ? ? ? ?max_size 10
    ? ? ? ?step take new_root
    ? ? ? ?step chooseleaf firstn 2 type host
    ? ? ? ?step emit
    }
    <<<<<<<<<<<< 添加結束 ?<<<<<<<<<<<<
    # end crush map

    ### 編譯 CRUSH MAP,并注入到集群中

    crushtool -c map.txt -o map.bin
    ceph osd setcrushmap -i map.bin

    3. 開始遷移數據

    到目前為止的所有操作均不會發生數據遷移,對線上業務也就沒有影響,下面我們要開始通過修改 POOL 的 CRUSH RULESET 和 副本數來實現數據的整體遷移(這里我們取 volumes 池來介紹):

    ###確認當前 volumes 池使用的是 crush_ruleset 0
    [root@ceph cluster]# ceph osd pool get volumes crush_ruleset
    crush_ruleset: 0

    ### 將 volumes 池的 crush_ruleset 設置為 1,設置完后,集群一切正常,PG均為active+clean
    [root@ceph cluster]# ceph osd pool set volumes crush_ruleset 1
    set pool 1 crush_ruleset to 1

    ### 將 volumes 池的 副本數設置為4, 設置完后,PG經過短暫 Peer,變為 active+undersized+degraded
    [root@ceph cluster]# ceph osd pool set volumes size 4
    set pool 1 size to 4

    [root@ceph cluster]# ceph -s
    ? ?cluster 166889ab-fa7b-4a07-83da-6dfc92913a3d
    ? ? health HEALTH_WARN
    ? ? ? ? ? ?256 pgs degraded
    ? ? ? ? ? ?256 pgs undersized
    ? ? ? ? ? ?recovery 183984/368006 objects degraded (49.995%)
    ? ? monmap e47: 3 mons at {ceph=192.168.100.112:6789/0,com=192.168.100.111:6789/0,con=192.168.100.110:6789/0}
    ? ? ? ? ? ?election epoch 182, quorum 0,1,2 con,com,ceph
    ? ? osdmap e106: 6 osds: 6 up, 6 in
    ? ? ? ? ? ?flags sortbitwise,require_jewel_osds
    ? ? ?pgmap v23391: 768 pgs, 3 pools, 403 MB data, 92011 objects
    ? ? ? ? ? ?1523 MB used, 1532 GB / 1533 GB avail
    ? ? ? ? ? ?183984/368006 objects degraded (49.995%)
    ? ? ? ? ? ? ? ? 512 active+clean
    ? ? ? ? ? ? ? ? 256 active+undersized+degraded


    [root@ceph cluster]# ceph osd pool set volumes crush_ruleset 2
    set pool 1 crush_ruleset to 2

    ### 等到 volumes 池的所有PG均變為 active+clean 后,將 volumes 池的 crush_ruleset 設置為3, 此步驟后,volumes 池的 PG狀態變為 active+remapped。但是不影響集群IO。

    [root@ceph cluster]# ceph osd pool set volumes crush_ruleset 2
    set pool 1 crush_ruleset to 2

    set pool 1 crush_ruleset to 3

    ### 此時,將 volumes 池的 副本數 設置為2 ,此時 PG 狀態經過 peer 之后,很快變為 active+clean ,volumes 池的兩副本均落在新的節點下,并且后臺在自行刪除之前舊節點上的數據。

    [root@ceph cluster]# ceph osd pool set volumes size ?2


    注意事項

    由于本次數據遷移是在生產環境上執行的,所以沒有直接執行將數據從舊節點直接?mv到新節點,而是選擇了執行步驟較為復雜的上面的方案,先?scp?到新節點,再?rm掉舊節點的數據。并且每一個步驟都是可以快速回退到上一步的狀態的,對于生產環境的操作,是比較友好的。在本次方案測試過程中,遇到了如下的一些問題,需要引起充分的注意:

    • Ceph 版本不一致: 由于舊的節點的 Ceph 版本為 0.94.5 ,而新節點安裝了較新版本的 10.2.7, 在副本 2=>4 的過程中Peer是正常的,而將池的crush_ruleset 設置為3 ,也就是將新節點的 PG 升級為主副本后,PG由新節點向舊節點發生Peer,此時會一直卡住,PG始終卡在了?remapped + peering,導致該 pool 無法IO。在將新舊節點 Ceph 版本一致后(舊節點升級,新節點降級),此現象得以消除。 為了確保此現象不會在實際操作中發生,應該在變更之前,新建一個測試pool,對其寫入部分數據,再執行所有數據遷移指令,查看此過程是否順暢,確認無誤后,再對生產pool進行操作!

    • 新節點 OSD 的重啟問題: 如果沒有添加了osd_crush_update_on_start?這個配置參數,那么當新節點的OSD重啟后,會自動添加到默認的?root=default?下,然后立刻產生數據遷移,因此需要添加這個參數,保證OSD始終位于我們人為指定的節點下,并不受重啟影響。這是個基本的Ceph運維常識,但是一旦遺忘了,可能造成較為嚴重的影響。更不用說防火墻時鐘這些配置了。

    • 集群性能降低:總體來說,在副本從2克隆為4這段時間(約2-3天,取決于集群數據量)內,集群的實際IO表現降低到變更前的 25%->80% 左右,時間越往后表現越接近變更前,這雖然不會導致客戶端的IO阻塞,但從客戶反饋來看,可以感知到較為明顯的卡頓。因此克隆時間應該選擇業務量較低的節假日等。

    • 新節點IP不cluster_network范圍內:這個比較好解決,只需要增大部署目錄ceph.conf內的cluster_network?或者?public_network的掩碼范圍即可,不需要修改舊節點的,當然網絡還是要通的。

    • 變更的回退:對于生產環境來說,盡管執行步驟幾乎是嚴謹不會出錯的,但是難免會遇到意外情況,就比如上面的版本不一致導致的 peer 卡住現象。因此我們需要制定完善的回退步驟,在意外發生的時候,能夠快速將環境回退到上一步集群正常的狀況,而不是在意外發生時驚出一身冷汗,雙手顫抖得敲指令。。。所以,下面的表格給出了這個變更操作的每一步的回退步驟:

    變更步驟實際影響回退指令回退影響
    ceph osd pool set volumes crush_ruleset 1ceph osd pool set volumes crush_ruleset 0
    ceph osd pool set volumes size 4PG由active+clean,變為 active+undersized+degradedceph osd pool set volumes size 2PG很快恢復active+clean
    ceph osd pool set volumes crush_ruleset 2PG 開始 backfill,需要較長時間ceph osd pool set volumes crush_ruleset 1PG很快恢復到active+undersized+degraded,并刪除在新節點生成的數據。
    ceph osd pool set volumes crush_ruleset 3PG 很快變為 active+remapped。ceph osd pool set volumes crush_ruleset2PG很快恢復到 active+clean
    ceph osd pool set volumes size 2PG 很快變為 active+clean,并且后臺刪除舊節點數據。ceph osd pool set volumes size 4PG 變為active+remapped。

    為何不直接遷移數據到新節點?總體來看數據遷移過程,最耗時的地方是數據從兩副本變為四副本的過程,其余過程是短暫且可以快速回退的,而如果直接將池的 crush_ruleset 設置為 3 ,數據開始從舊節點直接backfill到新節點上,其實這么做也是可以的,但是這里我們就會遇到一個問題,一旦數據復制了一天或者一段時間后,集群出現了問題,比如性能驟降,要求必須回退到操作之前的狀態,此時已經有部分PG完成了遷移,也就是說舊節點上的兩副本已經刪除了,那么回退到上一步后,還會發生數據從新節點向舊節點的復制,那么之前復制了多久的數據,可能就需要多久來恢復舊節點上刪除的數據,這很不友好。而用了我們的方法來復制數據的話,不會存在這個問題,因為這里的方法在最后一步將池的副本設置為2之前,舊節點上的數據始終都是在的,并且不會發生任何遷移,我們可以在任意意外情況下,通過幾條指令將集群恢復到變更之前的狀態。


    MON的遷移

    原理介紹

    相比于 OSD 的數據遷移,MON 的遷移比較省時省力一些,步驟相對簡單,但是里面涉及的原理比較復雜,操作也需要細心又細心。

    首先,我們的環境為典型的 Openstack+Ceph的環境,其中 Openstack 的三個組件: Nova/Cinder/Glance 均已經對接到了Ceph集群中,也就是說虛機系統盤,云硬盤,鏡像都保存在Ceph中。而這三個客戶端調用Ceph的方式不太一樣:

    • Glance :上傳下載鏡像等時,需要新建一個調用 librbd 的 Client 來連接 Ceph集群。

    • Cinder :

      • 創建刪除云盤時,新建一個調用 librbd 的 Client 來連接 Ceph 集群。

      • 掛載卸載云盤時,由Nova調用librbd來實現該操作。

    • Nova : 虛機(qemu-kvm進程)相當于一個始終在調用librbd的Client,并且進程始終都在。

    我們需要知道的是,當一個 Client需要連接 Ceph 集群時,它首先通過自己的用戶名和秘鑰(client.cinder/client.nova...) 來連接到?/etc/ceph/ceph.conf配置文件指定IP的MON,認證成功后,可以獲取集群的很多MAP( monmap,osdmap,crushmap...),通過這些 MAP,即可向 Ceph 集群讀取數據。

    對于一個虛機進程(qemu-kvm)來說,虛機啟動之初,它即獲取到了集群的 monmap, 而當所連接 MON 的 IP 變化時,比如這個 MON 掛掉時,它便會嘗試連接 monmap 里面的其他 IP 的 MON,如果每個MON都掛了,那么這個 Client 就不能連接上集群獲取最新的 monmap,osdmap等。下面我們以一個 pid為3171的 qemu-kvm 進程來演示這一過程:

    [root@con ~(keystone_admin)]# ps -ef|grep kvm
    qemu ? ? ? ?3171 ? ? ? 1 17 14:32 ? ? ? ? ?00:31:08 /usr/libexec/qemu-kvm -name guest=instance-0000000b.........

    [root@con ~(keystone_admin)]# netstat -tnp |grep 3171|grep 6789
    tcp ? ? ? ?0 ? ? ?0 192.168.100.110:59926 ? 192.168.100.112:6789 ? ?ESTABLISHED 3171/qemu-kvm

    可以看到,這個進程連接著IP為?192.168.100.112?的 MON,而我們手動將這個IP的 MON 停掉,則會發現這個進程又連接到了剩余兩個IP的MON之一上:

    [root@con ~(keystone_admin)]# ssh 192.168.100.112 systemctl stop ceph-mon.target

    [root@con ~(keystone_admin)]# netstat -tnp |grep 3171|grep 6789
    tcp ? ? ? ?0 ? ? ?0 192.168.100.110:48792 ? 192.168.100.111:6789 ? ?ESTABLISHED 3171/qemu-kvm ?

    因此,如果我們每次都增加一個MON,再刪除一個MON,那么在刪除一個MON之后,之前連接到這個MON上的 Client 會自動連接到一個其他MON,并且再獲取最新的monmap。那么我們增刪過程就是:

    • 原先有三個MON: con, com, ceph

    • 增加 new_mon_1,變為四個: con, com, ceph, new_mon_1

    • 刪除con,變為三個:com, ceph, new_mon_1

    • 增加 new_mon_2,變為四個: com, ceph, new_mon_1, new_mon_2

    • 刪除com,變為三個:ceph, new_mon_1, new_mon_2

    • 增加 new_mon_3,變為四個: ceph, new_mon_1, new_mon_2, new_mon_3

    • 刪除con,變為三個:new_mon_1, new_mon_2, new_mon_3

    Nova 側的一個問題

    在實際操作中,發現了一個問題,會導致虛機無法重啟等問題。

    當虛機掛載一個云硬盤時,Nova 會將掛載這個云盤時所連接的MON IP 寫入到數據庫中,而在修改完MON的IP后,新的MON IP不會被更新到數據庫中,而虛機啟動時會加載 XML 文件,這個文件由數據庫對應字段生成,由于沒有更新 MON IP,所以 qemu-kvm 進程在啟動時,會嘗試向舊的MON IP發起連接請求,當然,舊MON已經刪除,導致連接不上而卡住,最終致使虛機進程啟動了,但是虛機狀態始終不能更新為 RUNNING。

    可以通過打開客戶端的ceph.conf?內的?debug_rbd=20/20,查看qemu-kvm進程調用librbd時生成的log發現進程在啟動時始終嘗試連接舊的MON IP。

    這里,我們只能手動修改數據庫中記錄的IP地址來確保虛機重啟后能夠連接上新的MON,需要注意的是,僅僅修改虛機XML文件是無法生效的,因為會被數據庫內的字段覆蓋而連上舊MON:

    ### 具體字段為:
    mysql =>
    nova ?=> block_device_mapping => connection_info

    *************************** 23. row ***************************
    ? ? ? ? ? created_at: 2018-03-19 08:50:59
    ? ? ? ? ? updated_at: 2018-03-26 06:32:06
    ? ? ? ? ? deleted_at: 2018-03-26 09:20:02
    ? ? ? ? ? ? ? ? ? id: 29
    ? ? ? ? ?device_name: /dev/vdb
    delete_on_termination: 0
    ? ? ? ? ?snapshot_id: NULL
    ? ? ? ? ? ?volume_id: 39c76d96-0f95-490c-b7db-b3da6d17331b
    ? ? ? ? ?volume_size: NULL
    ? ? ? ? ? ?no_device: NULL
    ? ? ?connection_info: {"driver_volume_type": "rbd", "serial": "39c76d96-0f95-490c-b7db-b3da6d17331b", "data": {"secret_type": "ceph", "name": "volumes/volume-39c76d96-0f95-490c-b7db-b3da6d17331b", "secret_uuid": "0668cc5e-7145-4b27-8c83-6c28e1353e83", "qos_specs": null, "hosts": ["192.168.100.110", "192.168.100.111", "192.168.100.112"], "auth_enabled": true, "access_mode": "rw", "auth_username": "cinder", "ports": ["6789", "6789", "6789"]}}
    ? ? ? ?instance_uuid: 4f52191f-9645-448f-977b-80ca515387f7
    ? ? ? ? ? ? ?deleted: 29
    ? ? ? ? ?source_type: volume
    ? ? destination_type: volume
    ? ? ? ? guest_format: NULL
    ? ? ? ? ?device_type: disk
    ? ? ? ? ? ? disk_bus: virtio
    ? ? ? ? ? boot_index: NULL
    ? ? ? ? ? ? image_id: NULL

    遷移指令

    這里,我們使用 ceph-deploy 來增刪 MON 節點,主要是為了操作的簡潔和安全性著想。

    首先,我們需要將新的三個MON的IP地址加入到所有節點的/etc/ceph/ceph.conf的mon_host?字段中。保證此時mon_host內是六個MON的IP地址。

    ### 添加 new_mon_1
    [root@ceph cluster]# ceph-deploy mon add new_mon_1
    [root@ceph cluster]# ceph -s
    ? ?cluster 166889ab-fa7b-4a07-83da-6dfc92913a3d
    ? ? health HEALTH_OK
    ? ? monmap e48: 4 mons at {ceph=192.168.100.112:6789/0,com=192.168.100.111:6789/0,con=192.168.100.110:6789/0,new_mon_1=192.168.100.113:6789/0}
    ? ?
    ### 刪除 con ?刪除完后,建議等待1-3min再添加新的MON,使得qemu-kvm進程可以建立新的socket鏈接。
    [root@ceph cluster]# ceph-deploy mon destroy con
    [root@ceph cluster]# ceph -s
    ? ?cluster 166889ab-fa7b-4a07-83da-6dfc92913a3d
    ? ? health HEALTH_OK
    ? ? monmap e49: 3 mons at {ceph=192.168.100.112:6789/0,com=192.168.100.111:6789/0,new_mon_1=192.168.100.113:6789/0}
    ? ?
    ### 依次添加 new_mon_2 ,刪除 com,添加 new_mon_3 , 刪除 ceph:
    [root@ceph cluster]# ceph-deploy mon add new_mon_2
    [root@ceph cluster]# ceph-deploy mon destroy com
    ### 等待1-3min,
    [root@ceph cluster]# ceph-deploy mon add new_mon_3
    [root@ceph cluster]# ceph-deploy mon destroy ceph

    [root@con ~(keystone_admin)]# ceph -s
    cluster 166889ab-fa7b-4a07-83da-6dfc92913a3d
    ? ? health HEALTH_OK
    ? ? monmap e53: 3 mons at {new_mon_1=192.168.100.113:6789/0,new_mon_2=192.168.100.114:6789/0,new_mon_3=192.168.100.115:6789/0}

    此時,將所有節點/etc/ceph/ceph.conf內的mon_host字段中原先的MON刪除,只保留三個新的MON IP地址

    Glance & Cinder & Nova 服務重啟

    無需重啟 Glance 服務。

    需要重啟?所有計算節點的 nova-compute 和?控制節點的 Cinder 服務,否則會導致虛機無法創建等問題。

    ## 在計算節點
    openstack-service restart nova-compute
    ## 在控制節點
    openstack-service restart cinder

    Nova

    由于 nova 不會更新之前的已經掛載的磁盤所連接的MON IP 信息,這會導致虛機在重啟等動作時,嘗試連接到舊的已經被摧毀的MON的地址,導致動作卡住,因此這里要單獨改一下數據庫內的MON IP 信息:

    這里我們將 192.168.100.110/111/112 改為 192.168.100.113/114/115

    mysql >>

    use nova;
    update ?block_device_mapping set connection_info=(replace(connection_info,'192.168.100.110','192.168.100.113'));
    update ?block_device_mapping set connection_info=(replace(connection_info,'192.168.100.111','192.168.100.114'));
    update ?block_device_mapping set connection_info=(replace(connection_info,'192.168.100.112','192.168.100.115'));

    exit;

    更新完數據庫后,這次數據遷移算是大功告成了。為何不需要重啟虛機服務呢,這里再做一些簡單的介紹:

    qemu-kvm 虛機進程是一個長連接的 Ceph Client,自虛機啟動后,進程就和 Ceph 集群保持著連接,在我們更改 MON 后,這些 Client 會自動嘗試重連 monmap 里面的其他MON,從而更新 monmap, 來獲取最新的 MON 。修改?/etc/ceph/ceph.conf不會對虛機進程產生影響,除非虛機重啟等,但是,虛機可以通過更新 monmap 的方式來感知集群MON的改變。

    參考文檔

    • [如何更改基于rbd塊設備的虛機的monitor ip] [https://opengers.github.io/openstack/how-to-change-guest-monitor-ip-with-rbd-disk/#%E6%9F%A5%E7%9C%8B%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%BD%93%E5%89%8D%E8%BF%9E%E6%8E%A5%E7%9A%84monitor-ip]

    • [Ceph Monitor hardcoded IPs in Nova database] [https://bugzilla.redhat.com/show_bug.cgi?id=1414124]



    總結

    以上是生活随笔為你收集整理的Ceph 集群整体迁移方案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    91在线91 | 干干干操操操 | 成人羞羞免费 | 美女视频黄免费网站 | 成人在线免费观看视视频 | 丁香资源影视免费观看 | 伊人五月婷 | 日本女人在线观看 | 黄色免费网战 | 久久视频国产 | 日韩精品最新在线观看 | 午夜精品区 | 色综合久久网 | 午夜av剧场 | 中文字幕 国产专区 | 久久99爱视频 | 亚洲狠狠丁香婷婷综合久久久 | 国产精品s色 | 婷婷色在线播放 | 国产在线精品区 | 91精品免费看 | 日本三级全黄少妇三2023 | 人人看人人草 | 日韩三级在线观看 | 91亚洲成人| 91香蕉视频黄色 | 免费看毛片在线 | 国产日韩在线视频 | 国产在线免费 | 日韩中文字幕网站 | 久久久久免费看 | 99在线观看免费视频精品观看 | 九九热在线观看视频 | 91传媒激情理伦片 | 日本午夜免费福利视频 | 国产亚洲情侣一区二区无 | 天天操天天操天天 | 亚洲免费国产视频 | 97精品国产97久久久久久粉红 | 中文字幕在线播放视频 | 久久av影视 | 99在线免费视频 | 色婷婷狠狠操 | 日日综合网 | 国产成人三级一区二区在线观看一 | 五月婷婷.com | 69欧美视频 | 国产一区免费视频 | 夜夜躁日日躁狠狠躁 | av在线最新 | 91精品久久久久久久91蜜桃 | 国产欧美最新羞羞视频在线观看 | 一区二区视频电影在线观看 | 国产.精品.日韩.另类.中文.在线.播放 | 天天操夜夜操天天射 | 欧美性精品 | 国产一区二区三区免费在线观看 | 一区二区三区不卡在线 | 亚洲精品黄色 | 在线观看韩日电影免费 | 久久免费的精品国产v∧ | 91久久一区二区 | www.天天色.com | 国产精在线| 久久色在线播放 | 超碰97人 | 国产精品久久久久久久av大片 | 狠狠干美女 | 伊人春色电影网 | 91色蜜桃| www.国产视频 | 国产精品s色| 免费在线视频一区二区 | 久久久不卡影院 | 探花视频在线观看 | 黄色在线观看免费 | 日韩精品观看 | 国产精品久久久久久久久久新婚 | 日日干影院 | 久久96国产精品久久99漫画 | 欧美乱码精品一区二区 | 日日干美女 | 国偷自产中文字幕亚洲手机在线 | 国产精品综合久久久久 | 免费网站观看www在线观看 | 青草视频在线播放 | 伊甸园av在线 | 亚洲天堂毛片 | 亚洲视频免费视频 | 日韩精品一区二区三区电影 | 99久热| 国产精品午夜久久 | 深爱激情综合网 | 偷拍区另类综合在线 | 天天爱天天操天天射 | 久久午夜免费视频 | 99精品一区二区三区 | 国产精品成人av在线 | 91色网址| 国产亚洲一区 | 中文字幕国产一区 | 免费观看成人 | 久久乐九色婷婷综合色狠狠182 | 四虎伊人 | 美州a亚洲一视本频v色道 | 九九热精品视频在线观看 | 亚洲精品中文在线资源 | 亚洲妇女av| 四虎国产 | 在线观看一区 | 国产资源在线免费观看 | 黄色av三级在线 | 亚洲91网站 | 色a综合 | 欧美一区三区四区 | 中文字幕av在线不卡 | 精品国产免费一区二区三区五区 | 免费视频成人 | 91丨九色丨国产丨porny精品 | 久久视频在线 | 国产精品 中文在线 | 精品国产一区二 | av免费播放 | 黄色成人免费电影 | 蜜臀av夜夜澡人人爽人人 | 久操中文字幕在线观看 | 国产一区在线视频 | 日日干,天天干 | 国产精品欧美日韩在线观看 | 欧美精品久久人人躁人人爽 | 麻豆视传媒官网免费观看 | 国产成人久久 | 欧美日韩国产免费视频 | www亚洲精品 | 亚洲日本韩国一区二区 | 国产亚洲激情视频在线 | 在线观看成人小视频 | 国产日本高清 | 久久综合中文字幕 | 丁香六月激情婷婷 | 青草视频在线 | 国内精品在线观看视频 | 久久伦理影院 | av在线一二三区 | 国产999精品久久久影片官网 | 国产精品系列在线观看 | 日韩在线免费高清视频 | 亚洲精品国产精品国自产观看 | 日韩精品久久一区二区 | 伊人伊成久久人综合网站 | 日韩中出在线 | 美国三级黄色大片 | 深夜免费福利在线 | 99久久99久久免费精品蜜臀 | 色资源二区在线视频 | 久久综合九色综合欧美狠狠 | 999免费视频 | 超碰免费av | 最新久久久 | 欧女人精69xxxxxx| 免费观看成人网 | 九九免费精品 | 免费欧美高清视频 | 亚洲精品日韩在线观看 | 亚洲不卡在线 | 三级黄色大片在线观看 | 91传媒激情理伦片 | 网站在线观看你们懂的 | 少妇bbw撒尿 | 成人免费视频网 | av片中文字幕 | 伊人久久国产 | 亚洲乱码精品久久久久 | 手机av在线免费观看 | 亚洲精品中文在线资源 | 六月久久婷婷 | 伊人宗合| 色婷婷www| 激情综合六月 | 波多野结衣在线观看一区二区三区 | 国产免费观看久久 | 又黄又爽的视频在线观看网站 | 欧美精品做受xxx性少妇 | 久久av影视| 亚洲综合情 | 一区二区欧美日韩 | 亚洲精品永久免费视频 | 在线观看中文字幕dvd播放 | 免费激情在线电影 | 91精品一区国产高清在线gif | 中文字幕人成人 | 天天看天天干 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 亚洲va在线va天堂 | 一区二区三区在线免费 | 日韩精品一区二区三区三炮视频 | 天天干天天弄 | 成人午夜在线电影 | 丁香激情综合 | www.大网伊人 | 国模一区二区三区四区 | 在线视频18在线视频4k | 色综合五月| 青青河边草免费观看完整版高清 | 五月天婷亚洲天综合网精品偷 | 中文字幕久久精品一区 | 在线国产精品一区 | 又黄又刺激 | 色噜噜在线观看视频 | 毛片网在线观看 | 一级黄色片在线免费观看 | 久久久精品 一区二区三区 国产99视频在线观看 | 久久歪歪| 成人免费视频视频在线观看 免费 | 五月天国产精品 | 免费aa大片 | 天天色宗合 | 国产精品美女久久久久久久久久久 | 免费在线观看av网站 | 久久免费看a级毛毛片 | 久久久国际精品 | 亚洲日本韩国一区二区 | 高清色免费 | 五月天六月丁香 | 国产精品成人一区二区 | 亚洲精品视频中文字幕 | 亚洲一级片| 91探花系列在线播放 | 韩国一区二区三区视频 | 久久999久久| 久久久久久久久艹 | 免费观看的av | 美女福利视频在线 | 久久午夜免费视频 | 国产精品婷婷 | 久草在线免 | 丁香六月五月婷婷 | a在线免费观看视频 | 国产视频在线看 | 国产成人久久av977小说 | 午夜在线看 | 中文字幕 国产视频 | 99视频一区 | 狠狠色免费 | 天天综合视频在线观看 | 婷婷久久综合网 | 热久久这里只有精品 | 蜜臀久久99精品久久久久久网站 | 国产va饥渴难耐女保洁员在线观看 | 人人干免费| 69国产精品视频 | 天天综合91| 亚洲综合网站在线观看 | 99久久综合狠狠综合久久 | 丁香婷婷成人 | 日韩一级理论片 | 五月天婷婷在线观看视频 | 91亚洲视频在线观看 | 欧美精品v国产精品 | 亚洲国产丝袜在线观看 | 一区二区三区四区在线免费观看 | 中文高清av | 国产不卡视频在线 | 麻豆国产精品一区二区三区 | 国产特级毛片 | 国产精品久久久久久久免费 | 欧美久久久一区二区三区 | 成人av一区二区三区 | 国内精品视频在线播放 | 欧美日本国产在线观看 | 欧美日韩在线免费视频 | 99热九九这里只有精品10 | 精品美女久久久久久免费 | 成人网页在线免费观看 | 激情视频亚洲 | 色综合天天在线 | 国产一二三区av | 人人爽人人看 | 午夜美女福利直播 | 韩国av免费在线 | 久久精品99国产精品亚洲最刺激 | 日本女人在线观看 | 亚洲国产视频直播 | 999久久国精品免费观看网站 | 久久综合久久综合久久 | 丁香免费视频 | 欧美久久九九 | 99热精品国产一区二区在线观看 | 色噜噜日韩精品一区二区三区视频 | 天天操天天怕 | 亚洲欧美色婷婷 | 黄色在线看网站 | 久久久久久久99精品免费观看 | 久久久香蕉视频 | 成人影视免费看 | 国产一级免费观看 | 肉色欧美久久久久久久免费看 | 日韩免费视频在线观看 | 狠狠色丁香婷婷综合基地 | 黄网站app在线观看免费视频 | 99久久99热这里只有精品 | 96精品视频| 亚洲va在线va天堂va偷拍 | 综合五月| 久久女同性恋中文字幕 | 国产区久久 | 天天综合久久 | 亚洲理论片 | 久久综合中文色婷婷 | 天天爱天天爽 | 国产精品久久久久亚洲影视 | av中文字幕亚洲 | 亚洲精品视频一 | 欧美a级在线 | 亚洲精品视频在线观看免费视频 | 免费在线黄色av | 色网站在线 | 成人黄色中文字幕 | 久久国内免费视频 | 国产精品观看在线亚洲人成网 | 有码视频在线观看 | 欧美一区二区三区免费观看 | 精品视频中文字幕 | 狠狠干2018 | 亚洲少妇影院 | 日韩在线免费观看视频 | 99精品免费久久久久久日本 | 亚洲精品在线免费播放 | 亚洲午夜久久久影院 | 天天摸天天舔 | 激情五月婷婷综合网 | 欧美亚洲国产精品久久高清浪潮 | 狠狠插天天干 | 婷婷黄色片 | 久久久18 | 亚州av网站大全 | 国产在线不卡 | 日本成人黄色片 | 99在线视频免费观看 | 天天想夜夜操 | 一区二区久久久久 | 黄色精品久久 | 丁香久久综合 | 日日干美女 | 成人性生交大片免费看中文网站 | 丁香婷婷综合激情五月色 | 亚洲高清资源 | 91视频观看免费 | 青草视频在线 | 亚洲精品视频二区 | 最近中文字幕完整视频高清1 | 91网址在线 | 在线观看免费一级片 | 久久综合桃花 | 久久影视网| 视频一区二区在线观看 | 9在线观看免费高清完整版在线观看明 | 久久久久一区二区三区 | 超碰免费在线公开 | 国产a级精品 | 超碰在线98 | 久久精品一区二区三区视频 | 天天射天天射天天射 | 婷婷久久综合网 | 欧美在线视频一区二区三区 | 精品国产伦一区二区三区 | 亚洲日日夜夜 | 国产视频2 | 天天插视频 | 精品国产一区二区三区男人吃奶 | 草久久av| 色吊丝在线永久观看最新版本 | 色com网| 亚洲国产精品传媒在线观看 | 天天色天天操综合网 | 狠狠干美女 | 一区免费在线 | 成人黄色小视频 | 欧美日韩视频一区二区三区 | 国产精品成人在线 | h视频在线看 | 久久国产成人午夜av影院宅 | 亚洲欧洲精品一区 | 91在线免费看片 | 亚洲 欧美日韩 国产 中文 | 五月婷婷欧美视频 | 毛片888 | 91久久丝袜国产露脸动漫 | 97人人模人人爽人人少妇 | 久插视频 | 97精品国产一二三产区 | 欧美日韩国产一二三区 | av高清一区 | 日韩精品综合在线 | 91精品国自产在线偷拍蜜桃 | 蜜桃麻豆www久久囤产精品 | 波多野结衣电影一区二区三区 | 九九热精品国产 | 成人a v视频 | 精品综合久久久 | 日韩av在线小说 | 亚洲欧美日韩精品久久奇米一区 | 国产精品毛片完整版 | 区一区二在线 | 国产精品久久久久久久妇 | 成人午夜电影在线播放 | 久久久久久美女 | 日韩欧美极品 | 久久网页| 色中色亚洲 | 日韩精品一区二区三区视频播放 | 中国成人一区 | 日韩在线观看一区二区三区 | 亚洲成人精品影院 | 亚洲一级黄色片 | 三级黄色在线观看 | 超碰人人在线观看 | 久久人人添人人爽添人人88v | 中文字幕a在线 | 亚洲另类xxxx | 最新av电影网址 | 成年人国产在线观看 | 97在线超碰 | 五月婷婷综合在线 | 国产精品久久久久永久免费观看 | 成人国产综合 | 五月激情天 | 久久久精品久久日韩一区综合 | 嫩草av影院| 久久伊人五月天 | 九九热免费精品视频 | 婷婷色狠狠 | 国产黄色免费 | 91在线公开视频 | 综合亚洲视频 | 日韩一区二区免费视频 | 成人a视频在线观看 | 视频在线亚洲 | 91精品国产自产老师啪 | 六月天色婷婷 | 一区二区三区在线影院 | 国产视频2 | av 一区二区三区四区 | 国产麻豆精品久久一二三 | 午夜久久影视 | 国产一级视频在线观看 | 亚洲三级网站 | 天天av综合网 | 国产在线观看高清视频 | 欧美天堂视频在线 | 丁香 婷婷 激情 | 综合影视 | 欧美aaaxxxx做受视频 | 婷婷色5月| 十八岁免进欧美 | 亚洲精品男人的天堂 | 久久久久精 | 国产馆在线播放 | 色停停五月天 | 91麻豆国产福利在线观看 | 中文资源在线官网 | 麻豆视频免费在线观看 | 国产视频精品免费播放 | 国产网站色 | 国产麻豆电影在线观看 | 国产日韩欧美在线观看 | 天天做日日做天天爽视频免费 | 91麻豆国产福利在线观看 | 欧美日韩一区二区免费在线观看 | 日韩专区一区二区 | 亚洲一区日韩精品 | 九九视频这里只有精品 | 色婷婷综合五月 | 伊人久久精品久久亚洲一区 | 正在播放日韩 | 欧美性爽爽| 天天摸夜夜操 | 国产乱对白刺激视频在线观看女王 | 久久国产精品久久国产精品 | 日韩动漫免费观看高清完整版在线观看 | 天堂网av 在线| 国产精品亚 | 五月婷婷在线综合 | 精品国产伦一区二区三区观看说明 | 亚洲自拍av在线 | 久草久草久草久草 | 国产在线p | 久久一二三四 | 月丁香婷婷 | 91最新中文字幕 | 亚洲综合日韩在线 | 日本特黄特色aaa大片免费 | 日韩精品免费在线 | 91中文视频 | 精品亚洲一区二区三区 | 成人午夜电影免费在线观看 | 日日碰夜夜爽 | 午夜国产一区二区 | 久久久久久久久久久免费视频 | 欧美va电影 | 国产小视频免费在线网址 | 国产高清在线观看av | 色婷婷午夜 | 96超碰在线 | 91视频网址入口 | 国产日韩视频在线 | 亚洲精品美女久久久久 | 一区二区 不卡 | 亚洲欧洲国产日韩精品 | 久久久久久久久久久精 | 91毛片在线 | 在线97 | 免费在线黄色av | 亚洲综合视频在线观看 | 国产黄色大全 | 黄色在线观看www | 久久情爱 | 久久人人爽人人 | 久久久福利视频 | 久久久香蕉视频 | 日韩欧美一区二区三区视频 | 一区二区三区中文字幕在线 | 国产美女精品在线 | 福利视频一区二区 | 成年人国产在线观看 | 在线观看免费成人 | 蜜桃视频色 | 69国产盗摄一区二区三区五区 | 国产精品免费视频久久久 | av综合av | 日日干天天爽 | 国产成人精品一区一区一区 | 日韩av男人的天堂 | 91av在线免费视频 | 国产精品一区二区免费在线观看 | 综合国产视频 | 亚洲精品人人 | 九九在线精品视频 | 亚洲精品激情 | 一区二区三区四区在线免费观看 | 在线国产日本 | 久草免费资源 | 久久黄页 | 69绿帽绿奴3pvideos | 91精品播放| 在线观看小视频 | 香蕉视频18 | 黄色一级大片在线免费看产 | av一级黄| 2022国产精品视频 | 国产精品久久久久久久久久新婚 | 久久99久久精品国产 | 国产成人精品在线观看 | 超碰97免费在线 | 亚洲国产高清在线 | 国产黄免费在线观看 | 亚洲国产精品va在线看 | 五月婷婷综合在线观看 | 97精品久久人人爽人人爽 | 国产日韩在线一区 | 中文字幕 国产专区 | 四虎影视av | 国产一区二区三区免费在线 | 免费看三级 | 久久免费精品视频 | 亚洲在线视频播放 | 日韩免费视频 | 丁香视频 | 欧美aa一级片 | 中文字幕精品三级久久久 | 中文字幕在线观看视频免费 | 欧美日韩中文另类 | 国产午夜精品一区二区三区嫩草 | 插久久 | www.av免费| 97超碰资源网| 91精品蜜桃 | 二区三区在线视频 | 亚洲精品9| 国产精品3 | 97在线免费视频观看 | 国产九九九精品视频 | 成人在线观看影院 | 国产精品一区二区在线观看免费 | 中文字幕视频免费观看 | 欧美午夜a| 日韩精品中文字幕有码 | 亚洲精品国产区 | 激情影音先锋 | 久久伊人热 | 最近高清中文字幕 | 91亚洲精品在线观看 | 国产一区二区在线影院 | 麻豆综合网 | 在线观看成人网 | www91在线观看| zzijzzij日本成熟少妇 | 天海冀一区二区三区 | 97av.com| 成人性生交视频 | 日韩 精品 一区 国产 麻豆 | 国产精品一区二 | 一级特黄av | 日韩av免费一区二区 | 中文字幕在线日 | 天天干,天天射,天天操,天天摸 | 亚洲有 在线 | 天天操天天操天天操 | 日韩在线激情 | a天堂在线看 | 亚洲欧美日韩国产一区二区 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产香蕉视频在线观看 | 欧美有色| 亚洲一区二区三区四区精品 | 国产欧美最新羞羞视频在线观看 | 亚洲一区尤物 | 久久久久欠精品国产毛片国产毛生 | 国产精品美女久久久久久 | 久久影视中文字幕 | 免费av一级电影 | 日韩成人xxxx | 欧美精品乱码久久久久 | 色综合天天在线 | 香蕉在线播放 | 国产黄色精品视频 | 欧美永久视频 | 久久久久在线视频 | 在线看v片成人 | 一区二区精品在线视频 | 在线观看中文字幕 | 99热这里只有精品国产首页 | 国产精品高清在线 | 91麻豆精品国产自产 | 夜夜操天天干, | 日韩特级毛片 | 丝袜足交在线 | 久久久久久中文字幕 | 日韩精品视频在线观看网址 | 色在线免费 | 久久久精品久久 | 日韩精品久久中文字幕 | 国产精品地址 | 日日干日日 | 久久成人免费视频 | 91成人在线视频观看 | 麻豆国产精品va在线观看不卡 | 久久这里只有精品1 | 国产精品成人一区二区 | 日本不卡123 | 天天躁天天狠天天透 | 色婷婷九月 | 99精品视频在线观看视频 | 在线观看黄av | 在线韩国电影免费观影完整版 | 97在线精品 | 久久99久久99精品免观看软件 | 五月婷婷中文字幕 | 五月天.com| 成人免费视频网站在线观看 | 国产中文字幕亚洲 | 国产一区视频在线播放 | 亚洲爱爱视频 | 亚洲国产精品传媒在线观看 | 99婷婷狠狠成为人免费视频 | 九九综合九九综合 | 中国一级特黄毛片大片久久 | 一级a性色生活片久久毛片波多野 | 中文av字幕在线观看 | 深夜福利视频一区二区 | 黄色av高清 | 久久久一本精品99久久精品 | 99re久久资源最新地址 | 在线免费观看国产视频 | 亚洲视频电影在线 | 91丨九色丨国产丨porny精品 | 制服丝袜天堂 | 丁香六月综合网 | 黄色免费大片 | 五月天婷婷狠狠 | 色综合天天 | 久草精品在线观看 | 91精品国产高清自在线观看 | 色婷婷午夜 | 丁香综合激情 | 99久久日韩精品免费热麻豆美女 | 综合色狠狠 | 欧美精品二 | 色综合夜色一区 | 日日日天天天 | 亚洲日本va在线观看 | 成人黄色av网站 | 亚洲人人av | 国产日本亚洲 | 午夜影院一级 | 在线欧美a| 亚洲黄色a| 国产在线a视频 | 夜色资源站wwwcom | 国偷自产中文字幕亚洲手机在线 | 亚洲精品国产自产拍在线观看 | 国产精品久久久久婷婷 | 美女在线国产 | 伊人视频 | 精品国产伦一区二区三区观看体验 | 国产精品久久二区 | 三级黄色免费片 | 日韩免费三区 | 久久精品视频中文字幕 | 日韩一二区在线 | 国产精品99久久久久久小说 | 国产三级精品三级在线观看 | 国产精品久久久久久久久久久久午 | 国产精品少妇 | 麻豆国产在线播放 | 精品一区在线 | 精品国精品自拍自在线 | 精品一区精品二区高清 | 国产精品久久久久aaaa九色 | 91成人蝌蚪 | 亚洲小视频在线 | 99re6热在线精品视频 | 中文字幕免费高清在线观看 | 99热这里只有精品久久 | 91在线视频一区 | 日日夜夜人人天天 | 中国精品少妇 | 在线观看国产91 | 精品在线免费视频 | 亚洲精品美女视频 | 亚洲欧美日韩中文在线 | 天天操天天干天天综合网 | 国产精品成人一区二区 | 人人揉人人揉人人揉人人揉97 | 毛片一二区 | 黄av资源 | 国产福利91精品一区二区三区 | 韩国av免费观看 | 国产精品丝袜在线 | 国产精国产精品 | 亚洲一区视频免费观看 | 久久精品视频18 | 成 人 黄 色 片 在线播放 | av7777777| 不卡国产视频 | 青青久草在线视频 | 国产不卡视频在线 | 91av资源网 | 9999毛片| 亚洲精品视频中文字幕 | 国产精品嫩草55av | 日本黄色a级大片 | 欧美aa一级片 | 日韩免费一区二区三区 | 9999国产精品 | 操操日日| 激情欧美在线观看 | 午夜视频在线观看一区 | 99久久久久免费精品国产 | 在线精品亚洲一区二区 | 人人爱天天操 | 日韩理论在线观看 | 国产视频 亚洲精品 | 色a在线观看 | 日本久久片 | 在线精品视频免费播放 | 成人欧美在线 | 精品人妖videos欧美人妖 | 国产精品久久久久久一区二区三区 | 午夜久久久影院 | avove黑丝 | 99久视频| 国产精品乱码久久久久久1区2区 | 一区二区三区四区五区六区 | 国产区网址 | 国产精品自产拍在线观看中文 | 中文字幕在线影视资源 | 色老板在线 | 波多野结衣电影一区 | 永久免费精品视频 | 人人精品久久 | 91在线播 | 欧美国产亚洲精品久久久8v | 精品美女久久久久 | 国产小视频在线 | 99这里只有精品视频 | 99精品免费在线观看 | 亚洲成成品网站 | 久草热久草视频 | 东方av免费在线观看 | 亚洲精品在线一区二区 | 午夜色站 | 久久久国产一区二区三区四区小说 | 免费视频久久久 | 外国av网| 黄色特一级片 | 五月天av在线 | 五月在线视频 | www.com在线观看| 国产精品一二三 | 蜜桃视频日本 | 五月婷婷六月丁香在线观看 | 成年人免费观看国产 | 国产天天综合 | 98精品国产自产在线观看 | 99精品一级欧美片免费播放 | 最新av中文字幕 | 九九久久成人 | 国产精品igao视频网入口 | 欧美日韩视频在线观看免费 | 欧美一级性生活视频 | 日韩精品中文字幕有码 | 500部大龄熟乱视频使用方法 | 久久九九国产精品 | 亚洲人成影院在线 | 欧美色操| 久久论理| 91最新视频| 日日弄天天弄美女bbbb | 久久午夜精品 | 亚洲天堂网在线视频观看 | 成人全视频免费观看在线看 | 丁香婷婷激情国产高清秒播 | 美女黄频在线观看 | 在线观看国产www | 色视频网站在线观看一=区 a视频免费在线观看 | 欧美成人在线免费观看 | 久久久久国产精品一区二区 | 久久久久久99精品 | 精品国产不卡 | 国产97在线看 | 日韩免费成人av | 久久精品激情 | 在线精品视频在线观看高清 | av电影中文| 日本黄色免费电影网站 | 久亚洲 | 97视频人人| 亚洲精品国偷拍自产在线观看蜜桃 | 天天操天天爱天天爽 | 国产69精品久久久久久久久久 | 国产精品毛片一区视频播 | 成+人+色综合 | av黄色免费看 | 国产女人18毛片水真多18精品 | 色综合久久久久综合体 | 国产精品一区二区久久精品 | 欧美综合干 | 成年人三级网站 | 色在线中文字幕 | 亚洲精品美女在线观看 | 亚洲精品视频在线观看免费视频 | 91在线小视频 | 四月婷婷在线观看 | 国产视频日韩视频欧美视频 | 91视频高清免费 | 日韩精品不卡在线 | av看片在线观看 | a在线观看免费视频 | 久久久久久久久久久精 | 亚洲.www| 高清久久久 | 国产精品久久久区三区天天噜 | 亚洲黄色在线 | 黄色资源在线 | 美女免费视频观看网站 | 亚洲国产影院av久久久久 | 91亚洲网 | 国产精品免费久久久久久久久久中文 | 日韩啪啪小视频 | 麻豆影视在线免费观看 | 亚洲国产精品成人精品 | 91成人国产 | 国产成人一级电影 | 最近中文字幕免费 | 日韩电影一区二区三区 | 久久爱资源网 | 国产v欧美 | 国产精品孕妇 | 国产精品精品国产色婷婷 | av电影免费在线看 | 日本三级久久 | 国产视频精品免费 | 正在播放久久 | 亚洲午夜久久久久久久久 | 天堂av在线网 | 中文字幕丰满人伦在线 | 成全免费观看视频 | 六月丁香激情综合 | 日韩区视频 | 中文字幕电影高清在线观看 | 日韩网| 精品在线观看免费 | 国产国产人免费人成免费视频 | 色综合激情久久 | 免费在线观看av网站 | 狠狠干狠狠艹 | 久久婷婷亚洲 | 日韩午夜av | 丰满少妇在线观看 | 亚洲精品久久久蜜臀下载官网 | 免费毛片aaaaaa | 91亚洲国产 | 国产精品人成电影在线观看 | 91在线看视频免费 | 国产成人精品在线观看 | 91插插插网站| 久久色视频 | 色视频网站免费观看 | www.久艹 | 黄色1级大片 | www.干| 天天夜夜亚洲 | 欧美日韩国产网站 | 夜夜爽88888免费视频4848 | 这里只有精彩视频 | 国产拍揄自揄精品视频麻豆 | 欧美中文字幕第一页 | 99在线播放| 国产精品美女久久 | 欧美日一级片 | 九九色在线观看 | 中文字幕第一页av | 免费色婷婷 | 国产一区二区在线观看免费 | 成人国产精品入口 | 国产小视频在线观看免费 | 黄网站免费大全入口 | 国产精品久久久久影院 | 日本久久精品 | 色资源在线观看 | 亚洲欧美视频网站 | 日韩精品中文字幕在线播放 | 丁香影院在线 | 在线免费黄色 | 天天艹天天 | 天天综合网久久 | 区一区二在线 | 丝袜美腿亚洲综合 | av在线成人 | 亚洲欧美在线综合 | 久久久久激情 | 黄色av网站在线免费观看 | 在线观看第一页 | 国产精品麻豆欧美日韩ww | av在线网站大全 | 九九综合在线 | 天堂在线一区 | 丁香在线观看完整电影视频 | 日日爱影视 | 久久久久免费看 | 青青草国产免费 | 91看片黄色 | 久久久精品综合 | 亚洲精品www久久久久久 | 久草在线资源观看 | 免费av网站在线看 | 国产精品18久久久 | 久草www| 亚洲日韩精品欧美一区二区 | 日韩91精品 | 成人91在线 | 欧美日韩在线观看一区二区三区 | 久久成人精品电影 | 中文字幕在线看视频国产 | av三级av| 国产香蕉久久 | a级国产片 | 欧美精品一区二区三区一线天视频 | 日日干干| 久久综合中文字幕 | 午夜在线免费观看视频 | 久久久91精品国产 | 成年人视频在线观看免费 | 亚洲伊人色 | 亚洲专区路线二 | 久久区二区 | 日韩一级电影在线 | 天天色天天骑天天射 | www欧美色| 日韩精品一区二区三区丰满 | 成人av网站在线观看 | 日韩欧美综合 | 亚洲aⅴ免费在线观看 | 日韩精品免费专区 | 国产精品国内免费一区二区三区 | 丁香激情婷婷 | 国产精品成人一区二区三区吃奶 | 久久大视频 | 免费观看一级一片 | 成人丁香花 | 成人h动漫在线看 | 中文字幕之中文字幕 | 国产一级片久久 | 日韩中文字幕在线观看 | 亚洲国产精品视频在线观看 | 亚洲精品99久久久久久 | 久久伊人五月天 |