精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

OpenEuler22+GreatSQL+Dbops玩轉MGR

數據庫 其他數據庫
預備的 jemalloc 包只有兩個版本:一個是針對 EL7,一個是針對 EL8。并沒有專門為國產操作系統準備的專用包。在國產操作系統上,你應該優先使用 yum 來安裝適合該系統的包。如果使用 yum 安裝失敗,你可以考慮使用 EL7 或者 EL8 的 jemalloc 包來進行兼容性安裝。

背景

openEuler 是什么

openEuler22.03 LTS 是 openEuler 社區于 2022 年 3 月發布的開源操作系統(從系統版本的命名不難發現吧)。openEuler 社區的運營由華為為主導,社區以全球開源貢獻者的合作,構建了這個高效、穩定和安全的操作系統。基于 Linux 內核的 openEuler 操作系統,支持 Kunpeng 以及其他處理器,旨在充分發揮計算芯片的潛力。它適用于數據庫、大數據、云計算和人工智能等場景。通過社區合作,openEuler 構建了一個創新平臺,創建了一個支持多處理器架構的統一開放操作系統,并推動了軟件和硬件應用生態系統的繁榮。

openEuler22.03 LTS 帶來了一系列關鍵功能,包括基于 Linux Kernel 5.10 的深度優化、新型媒體文件系統、分層內存擴展、用戶模式協議棧、云原生調度增強、QEMU 熱補丁、KubeOS、增強的輕量級安全容器、增強的 iSulad、雙平面部署、邊緣計算支持、嵌入式鏡像,以及 secPaver 等。

openEuler22.03 LTS 可以被視為國產操作系統創新項目的首選系統版本之一。

GreatSQL 是什么

GreatSQL,作為 MySQL 分支 Percona 的延伸,立志成為中國廣泛受歡迎的開源數據庫。其上一版本基于 Percona Server 8.0.25 構建,而這次的新版本則使用 Percona Server 8.0.32 作為基礎,引入了許多重要特性。新發布的 GreatSQL 8.0.32-24 版本增加了并行 load data、邏輯和 CLONE 備份加密、MGR 讀寫節點可動態綁定 VIP、SQL 兼容擴展、審計日志增強等重大特性。

GreatSQL 8.0.32-24 可以被視為國產開源數據庫信創項目,并且解決 MySQL5.7 EOL 問題的重要替代方案之一。

dbops 是什么

dbops 是一款提供生產級別 MySQL 部署的 playbook 工具,由芬達個人開發。

地址: https://gitee.com/fanderchan/dbops/

GreatSQL 官方并未提供專門針對 openEuler 的編譯安裝包,而我發現部署 GreatSQL、GreatSQL MGR、GreatSQL HA 等都有許多細節需要注意。本文主要講述我如何思考并開發 dbops 的新功能,以在 openEuler22 上成功部署 GreatSQL,并運行其"MGR 讀寫節點可動態綁定 VIP"功能(以下簡稱"GreatSQL HA 功能")。

dbops 如何支持 GreatSQL

dbops 本來就支持 MySQL 和 Percona,所以對 GreatSQL 的支持并不需要大規模的改動。以下大部分是一些針對部署 GreatSQL 與 MySQL 或 Percona 的不同之處的調整。

1. 只對 Linux - Generic 包的支持

由于 dbops 的目標是支持大量的國產操作系統,與 MySQL 一樣,GreatSQL 提供了針對各種操作系統的預編譯二進制包,但有一個是通用的,那就是 Linux - Generic 包。在 dbops 為 MySQL 提供支持以及在實際生產中,都在使用這個包。

同時,為了支持更多的 Linux 系統,我選擇了基于 glibc2.17 的包,而非 glibc2.28 的包。前者意味著包是在 glibc 公共庫版本為 2.17 的系統下編譯出來的,因此,它不會包含大于 2.17 的庫函數,兼容性會更強。

我選擇支持的是 minimal 包,這個版本剔除了與調試相關的二進制文件和調試符號,體積非常小,僅為常規包的三分之一,我認為非 minimal 包并無優勢。

目前,dbops 僅支持 GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64.tar.xz 的部署。

2. dbops 的 mysql_ansible 的配置文件 common_config.yml 的調整

dbops 可以很方便的配置執行 playbook 的變量,變量設置非常集中,一般只需要修改兩個文件,一個是全局參數配置文件 common_config.yml,另外一個是當前需要執行的 playbook yaml 文件。

  • 新增了 db_type 參數,用于判斷待部署的數據庫類型,可選值為 MySQL、Percona、GreatSQL。根據 db_type 的不同,部署流程將有所區別。
  • 將 mysql_base_dir 參數和 mysql_data_dir_base 參數設定為根據 db_type 自動生成,這樣可以得到不同的目錄路徑。我希望避免將 MySQL 和 GreatSQL 放置在同一目錄下,以便于區分。
  • 對于 mysql_package 參數,即安裝包的名稱,如果是 MySQL,會根據 {{ mysql_version }} 自動生成;如果是 GreatSQL,將讀取 greatsql_package 的設置。
  • 新增了 fcs_use_greatsql_ha 開關參數,其默認值為 1,即如果部署的是 GreatSQL 并且采用 MGR 架構(執行的 playbook==mgr.yml),那么默認會部署"MGR 讀寫節點可動態綁定 VIP"的功能插件。
## DB TYPE,suport mysql,percona,greatsql
+ db_type: greatsql

#Directory of MySQL installation package
mysql_packages_dir: ../downloads/ 

+ greatsql_package: GreatSQL-8.0.32-24-Linux-glibc2.17-x86_64-minimal.tar.xz
+ percona_package: Percona-Server-8.0.29-21-Linux.x86_64.glibc2.17.tar.gz

## do not modify
- mysql_package: "{{ 'mysql-' + mysql_version + '-linux-' + ('glibc2.12' if mysql_version.startswith('5.') else 'glibc2.17') + '-x86_64' + ('.tar.gz' if mysql_version.startswith('5.') else '-minimal.tar.xz') }}"
+ mysql_package: "{% if db_type == 'mysql' %}{{ 'mysql-' + mysql_version + '-linux-' + ('glibc2.12' if mysql_version.startswith('5.') else 'glibc2.17') + '-x86_64' + ('.tar.gz' if mysql_version.startswith('5.') else '-minimal.tar.xz') }}{% elif db_type == 'percona' %}{{ percona_package }}{% elif db_type == 'greatsql' %}{{ greatsql_package }}{% endif %}"

## linux mysql run user name
mysql_user: mysql
mysql_group: mysql
mysql_user_password: Dbops@9999

## mysql install directory
- mysql_base_dir: /database/mysql/base/{{ mysql_version }}
+ mysql_base_dir: /database/{{ db_type }}/base/{{ mysql_version }}

## mysql_data_dir_base define mysql datadir base, real datadir= mysql_data_dir_base + /port
- mysql_data_dir_base: /database/mysql
+ mysql_data_dir_base: /database/{{ db_type }}

+ fcs_use_greatsql_ha: 1

3. 新增 GreatSQL 專屬 my.cnf 模板,并對 GreatSQL HA 的新參數支持

在 mgr.yml 這個 playbook 里新增三個與 GreatSQL HA 相關的參數設置

+ greatsql_vip: 192.168.199.174
+ greatsql_net_work_interface: "ens33"
+ greatsql_netmast: "255.255.255.255"

新增了 mysql_ansible/roles/mysql_server/templates/8.0/greatsql-my.cnf.j2 模板,此模板是從 percona-my.cnf.j2 模板克隆而來。為了支持 GreatSQL HA 的相關參數設置,我使用 jinja2 語法設置了判斷邏輯,只有滿足以下三個條件,才會添加這些參數:

  • 數據庫類型為 'greatsql' (在 common_config.yml 中設置)
  • 設置了 fcs_use_greatsql_ha: 1 開關,要求部署 GreatSQL HA 功能(在 common_config.yml 中設置)
  • 在安裝 MGR 時(運行 ansible-playbook mgr.yml 時)
+ {% if db_type == 'greatsql' and fcs_use_greatsql_ha == 1 and make_mgr_role_included is defined and make_mgr_role_included %}
+ #GreatSQL MGR vip
+ plugin-load-add=greatdb_ha.so
+ loose-greatdb_ha_enable_mgr_vip=1
+ loose-greatdb_ha_mgr_vip_ip={{ greatsql_vip }}
+ loose-greatdb_ha_mgr_vip_mask={{ greatsql_netmast }}
+ loose-greatdb_ha_mgr_vip_nic={{ greatsql_net_work_interface }}
+ 
+ #single-primary mode
+ loose-group_replication_single_primary_mode=1
+ loose-group_replication_enforce_update_everywhere_checks=0
+ {% endif %}

前面設置的三個參數值,greatsql_vip、greatsql_netmast、greatsql_net_work_interface 會對應傳入到 my.cnf 里。

4. 支持自動下載 GreatSQL 安裝包

+ - name: Download GreatSQL binary tarball if not found locally and auto download is enabled(local)
+   ansible.builtin.get_url:
+     url: "https://product.greatdb.com/{{ mysql_package[0:18] }}/{{ mysql_package }}"
+     dest: "{{ mysql_packages_dir }}/{{ mysql_package }}"
+     mode: '0644'
+     timeout: 30
+     headers:
+       User-Agent: "Wget/1.21.1"
+   when: not mysql_server__package_file.stat.exists and fcs_auto_download_mysql == 1 and db_type == 'greatsql'
+   delegate_to: 127.0.0.1

在正常情況下,您應該手動上傳 GreatSQL 的包到 downloads/ 文件夾中。如果在 downloads/ 文件夾中沒有找到對應的包,且在 common_config.yml 文件中設置了 fcs_auto_download_mysql == 1(允許從互聯網下載安裝包),并且 db_type == 'greatsql',那么將會自動從互聯網下載安裝包。

dbops 本身就支持下載 MySQL 安裝包的功能。但由于 GreatSQL 的安裝包下載路徑不同,因此我額外添加了一個下載鏈接,以實現相同的下載功能。

5. 修改 GreatSQL 啟動服務

為了讓 GreatSQL HA 支持 mysqld 執行通常需要較高權限才能操作的掛載和卸載 VIP 操作,我們需要進行一些特殊設置。官方原先提供了兩個方案,但我提出了新的解決方案。

在服務設置中,我們加入以下代碼:

[Service]
+ {% if db_type == 'greatsql' and fcs_use_greatsql_ha == 1 and make_mgr_role_included is defined and make_mgr_role_included %}
+ AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW
+ {% endif %}

只有當滿足條件(需要部署 GreatSQL HA)時,系統會自動在啟動服務中配置 "CAP_NET_ADMIN CAP_NET_RAW" 的權限。

圖片

我設計的這種方法也得到了官方的采納,成為首選推薦方法。

6. fix 部署 GreatSQL 有可能報錯的問題

GreatSQL 在部署后可能在使用 mysqld 初始化時,或者初始化后使用 mysql 登錄時,報告 libcrypto.so 或 libssl.so 找不到。

[root@192-168-199-171 ~]# /usr/local/mysql/bin/mysqld --defaults-file=/database/mysql/etc/3306/my.cnf --initialize-insecure
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libcrypto.so: cannot open shared object file: No such file or directory

[root@192-168-199-171 lib]# mysql -uroot -p -S /database/mysql/data/3307/mysql.sock
mysql: error while loading shared libraries: libssl.so: cannot open shared object file: No such file or directory

針對此問題,我們有兩種解決方案。第一種方法是使用 yum install openssl-devel 安裝,之后系統庫就會包含這兩個 so 庫:

/usr/lib64/libcrypto.so
/usr/lib64/libssl.so

然而,我們也有第二種解決方法。GreatSQL 的 Generic 包其實已經編譯了這兩個庫,只是它們被命名為 libcrypto.so.10 和 libssl.so.10,而非 libcrypto.so 和 libssl.so。我們只需在 /usr/local/mysql/lib/private/ 文件夾內為這兩個庫創建軟鏈接即可。

并且,我認為采用第二種方法,使用官方包內的 libcrypto.so 和 libssl.so,是最佳的解決方案。

改動代碼如下:

mysql_ansible/roles/mysql_server/tasks/fix_greatsql_install.yml

+ - name: Create symbolic links for libssl.so and libcrypto.so
+   file:
+     src: "/usr/local/mysql/lib/private/{{ link.src }}"
+     dest: "/usr/local/mysql/lib/private/{{ link.dest }}"
+     state: link
+     owner: "{{ mysql_user }}"
+     group: "{{ mysql_group }}"
+   loop:
+     - { src: 'libssl.so.10', dest: 'libssl.so' }
+     - { src: 'libcrypto.so.10', dest: 'libcrypto.so' }
+   loop_control:
+     loop_var: link

mysql_ansible/roles/mysql_server/tasks/main.yml

- name: Install mysql to /usr/local/mysql
    ansible.builtin.import_tasks: install_mysql.yml

+ - name: Fix libcrypto.so and libssl.so not find by create link if db_type is greatsql
+   ansible.builtin.import_tasks: fix_greatsql_install.yml
+   when: db_type == 'greatsql'

  - name: Init mysql datadir
    ansible.builtin.import_tasks: initialize_mysql_datadir.yml

7. 檢查網卡是否一致

在設定了 VIP 漂移的三臺機器中,與 MHA 架構相同,我們可能會遇到一種狀況:在一開始設置網卡綁定時,主機管理員可能會沒注意,發生以下情況:

192.168.199.171  網卡名 bond1
192.168.199.172  網卡名 bond1
192.168.199.173  網卡名 bond0

你可能已經發現了,第三臺機器的網卡名與前兩臺不一致。因此,如果發生高可用漂移,MHA 或 MGR 在選擇主機時,如果選擇了第三臺作為主機,那么根據 greatsql_net_work_interface: "bond1" 的設置,漂移操作可能會失敗。雖然我還沒有進行過測試,但這個問題在 MHA 架構中肯定會發生,而且在 GreatSQL HA 架構中也有很大可能發生!

因此,在運行 ansible-playbook 部署 mgr.yml 時,我已在第一步的 pre_check_and_set(檢查和設置系統參數)中,加入了檢查網卡名是否一致的步驟。如果網卡名不一致,playbook 將報錯并終止運行,給出提示。代碼如下:

- name: Add network interface alias to a temporary file
  ansible.builtin.lineinfile:
    path: "/tmp/net_aliases.txt"
    line: "{{ ansible_default_ipv4.alias }}"
    create: true
    mode: '0644'

- name: Fetch copy
  ansible.builtin.fetch:
    src: /tmp/net_aliases.txt
    dest: /tmp/ssh

- name: Append file /tmp/net_aliases.txt (delegate to 127.0.0.1)
  ansible.builtin.shell: set -o pipefail && find /tmp/ssh/ -name "*.txt" -type f -exec sh -c 'cat {}' \; | sort | uniq | wc -l
  register: pre_check_and_set__shell_output
  changed_when: false
  run_once: true
  delegate_to: 127.0.0.1

- name: Check if shell output is 1
  ansible.builtin.assert:
    that: pre_check_and_set__shell_output.stdout | int == 1
    fail_msg: "Network card names are different!"
  run_once: true
  delegate_to: 127.0.0.1

- name: Delete /tmp/net_aliases.txt
  ansible.builtin.file:
    path: /tmp/net_aliases.txt
    state: absent

- name: Delete /tmp/ssh/ (delegate to 127.0.0.1)
  ansible.builtin.file:
    path: /tmp/ssh/
    state: absent
  run_once: true
  delegate_to: 127.0.0.1

8. 支持使用 jemalloc 內存分配器

GreatSQL 和 Percona 官方都推薦使用 jemalloc 替代默認的 malloc,我至今沒有發現 MySQL 官方的類似建議。然而,在實踐中,我曾經通過替換 malloc 為 jemalloc 內存管理器來解決內存泄露問題,盡管根本原因仍不清楚。因此,我之前已經在我的 dbops 工具中加入了在部署時選擇使用 jemalloc 內存分配器的功能,它是在 systemd 服務中實現的。

以下是涉及的代碼:

mysql_ansible/playbooks/common_config.yml

# 配置文件中提供一個開關,決定是否使用 jemalloc 內存分配器,其默認值為 0,即不修改內存分配器
fcs_mysql_use_jemalloc: 1

mysql_ansible/roles/mysql_server/tasks/install_mysql_dependents.yml

- name: Install libaio and numactl
  ansible.builtin.yum:
    name: "{{ package.name }}"
    state: present
  loop:
    - { name: 'libaio' }
    - { name: 'numactl' }
  loop_control:
    loop_var: package
  tags:
    - dependents

- name: Install jemalloc
  when: fcs_mysql_use_jemalloc == 1
  tags:
    - dependents
  block:
    - name: Install jemalloc using yum
      ansible.builtin.yum:
        name: jemalloc
        state: present
      register: mysql_server__jemalloc_install_result
      ignore_errors: true

    - name: Set jemalloc rpm file name based on OS
      ansible.builtin.set_fact:
        mysql_server__jemalloc_rpm_file: "{{ 'jemalloc-3.6.0-1.el8.x86_64.rpm' if os_type in ['openEuler22', 'openEuler20', 'CentOS8', 'BigCloud8', 'Anolis OS8'] else 'jemalloc-3.6.0-1.el7.x86_64.rpm' }}"

    - name: Copy jemalloc rpm to target server
      ansible.builtin.copy:
        src: "../files/{{ mysql_server__jemalloc_rpm_file }}"
        dest: "/tmp/{{ mysql_server__jemalloc_rpm_file }}"
        mode: '0755'
      when: mysql_server__jemalloc_install_result.failed

    - name: Install jemalloc from local file
      ansible.builtin.yum:
        name: "/tmp/{{ mysql_server__jemalloc_rpm_file }}"
        state: present
        disable_gpg_check: true
      register: mysql_server__jemalloc_local_install_result
      when: mysql_server__jemalloc_install_result.failed
      ignore_errors: true

    - name: Check if jemalloc installation failed
      ansible.builtin.fail:
        msg: "Failed to install jemalloc"
      when: mysql_server__jemalloc_install_result.failed and mysql_server__jemalloc_local_install_result.failed

這段代碼主要是用于安裝 mysql_server 的依賴包,如果你在配置中設置了 fcs_mysql_use_jemalloc: 1,那么將會安裝 jemalloc。默認情況下,它會嘗試使用 yum 來安裝。如果 yum 安裝失敗,那么它會嘗試使用 dbops 自帶的 jemalloc 包。

原因是,預備的 jemalloc 包只有兩個版本:一個是針對 EL7,一個是針對 EL8。并沒有專門為國產操作系統準備的專用包。在國產操作系統上,你應該優先使用 yum 來安裝適合該系統的包。如果使用 yum 安裝失敗,你可以考慮使用 EL7 或者 EL8 的 jemalloc 包來進行兼容性安裝。

mysql_ansible/roles/mysql_server/templates/mysql.service.j2

[Service]
...
{% if fcs_mysql_use_jemalloc == 1 %}
{% if os_type in ['openEuler22','openEuler20'] %}
Envirnotallow="LD_PRELOAD=/usr/lib64/libjemalloc.so.2"
{% else %}
Envirnotallow="LD_PRELOAD=/usr/lib64/libjemalloc.so.1"
{% endif %}
{% endif %}

根據 yum 或者 rpm 包方式安裝 libjemalloc 后,不同操作系統的 libjemalloc.so 路徑可能會不同,我在服務配置里會做判斷和正確加載。

芬達,《芬達的數據庫學習筆記》公眾號作者,開源愛好者,擅長 MySQL、ansible。

責任編輯:武曉燕 來源: GreatSQL社區
相關推薦

2022-11-09 08:06:15

GreatSQLMGR模式

2023-08-18 14:39:02

2025-10-28 03:00:00

2023-08-30 08:01:28

MySQLGreatSQLdocker

2023-06-28 10:24:04

2024-07-12 12:43:51

2025-08-28 02:11:00

SQL優化性能

2024-10-14 13:22:15

2024-01-03 08:14:33

GreatSQLMyCat庫名字

2022-02-24 16:15:16

OpenHarmon鴻蒙OpenEuler

2024-07-05 10:19:59

2023-01-30 08:09:18

權限GreatSQL運行

2025-07-23 08:15:40

2020-06-16 09:55:52

數據庫MySQL技術

2024-04-01 09:48:49

GreatSQL語句NULL

2024-10-16 09:43:45

GreatSQLHint數據庫

2022-09-12 08:01:21

GreatSQLMySQL性能

2024-01-31 09:55:53

2023-01-10 17:00:44

EulerMakeropenEulerLinux
點贊
收藏

51CTO技術棧公眾號

偷拍自拍亚洲| 成人在线观看黄色| 激情综合电影网| 亚洲精品福利免费在线观看| 玩弄japan白嫩少妇hd| 国产精品久久久久一区二区国产 | 久久久久久久国产精品影院| 国产精品免费视频xxxx| 欧美日韩在线视频免费| 香蕉视频一区| 日韩午夜电影在线观看| av免费中文字幕| www在线免费观看视频| 2021久久国产精品不只是精品| 国产成人高潮免费观看精品| 劲爆欧美第一页| 日韩a级大片| 欧美一区日本一区韩国一区| 亚洲熟妇av一区二区三区| 国产精品刘玥久久一区| 久久久久久久综合| 高清不卡日本v二区在线| 亚洲精品国产无码| 亚洲茄子视频| 欧美大尺度激情区在线播放| 国产精品扒开腿做爽爽| 日韩精品一级| 欧美在线视频不卡| 精品一区二区中文字幕| 色婷婷在线播放| 国产精品久久久久7777按摩| 国偷自产av一区二区三区小尤奈| 国产又黄又粗又硬| 日本色综合中文字幕| 91精品国产91久久久久久不卡 | 日本毛片在线观看| 国产最新精品免费| 国产精品欧美一区二区| 一级一片免费看| 91久久中文| 欧美激情综合色综合啪啪五月| 国产一二三四区在线| 天天躁日日躁狠狠躁欧美巨大小说 | 岛国大片在线播放| 91cn在线观看| 亚洲欧美韩国综合色| 亚洲春色在线| 97电影在线| 亚洲国产精品激情在线观看| 欧洲视频一区二区三区| 国产原创av在线| wwwwww.欧美系列| 久久久久综合一区二区三区| 无码国产精品96久久久久| 国产91丝袜在线播放| 91嫩草在线| 国内爆初菊对白视频| 国产黄色精品视频| 亚洲综合在线做性| 精品人妻一区二区三区麻豆91| 国产酒店精品激情| 999国产在线| 精品乱子伦一区二区| 国产精品亚洲综合一区在线观看| 91久久精品久久国产性色也91| 国产精品久久777777换脸| 美女视频黄 久久| 国产一区二区在线免费视频| 91免费视频播放| 国产乱码精品一品二品| 成人在线视频电影| 网站黄在线观看| 久久久久久久精| 亚洲精品国产系列| 人妖欧美1区| 欧美日韩中文字幕| 亚洲激情在线观看视频| 亚洲网站三级| 精品美女被调教视频大全网站| 丰满岳乱妇一区二区| 亚洲人成网亚洲欧洲无码| 亚洲视频在线免费看| 天天色影综合网| 国产一区久久| 国产极品精品在线观看| 一个人看的www日本高清视频| 国产又黄又大久久| 国产精品久久久久久久久久久久午夜片 | 日韩人妻无码一区二区三区99 | 看看黄色一级片| 国产三级精品三级在线观看国产| 亚洲精品一区在线观看香蕉| 日韩欧美在线视频播放| 亚洲性视频h| 国产精品成人va在线观看| 国产农村老头老太视频| 91在线精品一区二区| 亚洲精品中文字幕乱码三区不卡| av免费在线观看网站| 天天色 色综合| 三上悠亚在线一区| 粉嫩的18在线观看极品精品| 亚洲热线99精品视频| 黄色一级片在线免费观看| 久久成人一区| 国产成人成网站在线播放青青| 国产露出视频在线观看| 亚洲一区在线看| 黄色手机在线视频| 全球av集中精品导航福利| 日日骚久久av| 国产三级av片| 国产成人免费视频网站 | √天堂8在线网| 日本大香伊一区二区三区| 一二三区视频在线观看| 欧美成人直播| 国产激情综合五月久久| 欧洲亚洲精品视频| 亚洲一区视频在线| 欧美又黄又嫩大片a级| 日本a口亚洲| 日本精品免费一区二区三区| 国产91麻豆视频| 亚洲精品中文字幕乱码三区| 在线观看免费成人av| 婷婷成人影院| 7777kkkk成人观看| 丰满岳乱妇国产精品一区| 亚洲女与黑人做爰| 久久精品视频在线观看免费| 久久国产小视频| 国产精品免费福利| 福利成人在线观看| 色婷婷综合久色| 亚洲人人夜夜澡人人爽| 国产精品丝袜xxxxxxx| 国产综合欧美在线看| 国产丝袜精品丝袜| 日韩一二在线观看| 久久国产波多野结衣| 亚洲福利一区| 国产欧美日韩综合精品二区| 亚洲丝袜精品| 欧美日本一区二区三区| 亚洲不卡的av| 日韩高清一区二区| 日本一区二区不卡高清更新| 美女的胸无遮挡在线观看| 日韩精品中午字幕| 开心激情五月网| 日本伊人午夜精品| 日韩啊v在线| 香蕉久久免费电影| 亚洲视频免费一区| 在线观看中文字幕网站| 国产午夜精品福利| 精品免费国产一区二区| 狠狠色狠狠色综合婷婷tag| 97成人精品区在线播放| 日本午夜在线| 欧美视频在线看| 成都免费高清电影| 日韩精品欧美成人高清一区二区| 国产欧美综合精品一区二区| 欧产日产国产精品视频| 日韩精品中文字幕在线| 高清乱码免费看污| 国产亚洲精品aa午夜观看| 激情网站五月天| 日韩精品免费一区二区在线观看 | 精品免费久久久久久久| 亚洲福利合集| 国模吧一区二区| 欧美午夜黄色| 欧美色图在线观看| 69av视频在线| 不卡的av电影| 日韩精品一区二区三区久久| 国产欧美久久一区二区三区| 国产精品观看在线亚洲人成网| 国产超级va在线视频| 日韩午夜av一区| 日韩av在线电影| 久久九九久精品国产免费直播| 手机视频在线观看| 黄色精品一区| 欧美一卡2卡3卡4卡无卡免费观看水多多| 毛片无码国产| 中文字幕亚洲欧美日韩在线不卡| 一级全黄少妇性色生活片| 一区二区三区在线观看欧美| 蜜臀av粉嫩av懂色av| 国产精品五区| 中文字幕欧美日韩一区二区| caoporn成人免费视频在线| 国产精品网红直播| 午夜av在线免费观看| 亚洲国产欧美一区| 真实的国产乱xxxx在线91| 亚洲精品视频在线观看网站| 日韩乱码人妻无码中文字幕久久| 奇米综合一区二区三区精品视频| 日本黄xxxxxxxxx100| 五月国产精品| 亚洲综合色激情五月| 日本另类视频| 欧美激情免费观看| 成人免费在线电影| 欧美不卡123| 亚洲精品国产精品乱码视色| 午夜欧美大尺度福利影院在线看| 人人妻人人澡人人爽| 国产91露脸合集magnet| 久久精品免费网站| 欧美先锋影音| 致1999电视剧免费观看策驰影院| 久久a爱视频| 成人网中文字幕| 中文在线аv在线| 精品激情国产视频| 夜级特黄日本大片_在线 | 国产伦精品一区二区三区妓女下载| 亚洲黄网站黄| 久久av秘一区二区三区| 成人影视亚洲图片在线| 精品国产乱码一区二区三区四区| 精品视频在线观看网站| 国产精品高潮呻吟久久av黑人| 黄色大片在线| 欧美日韩国产成人高清视频| 国产精品秘入口| 亚洲精品美女在线观看| www.com在线观看| 欧美美女喷水视频| 国产又粗又猛又爽又黄的| 色国产精品一区在线观看| 精品无码免费视频| 亚洲乱码日产精品bd| 人妻少妇无码精品视频区| 99精品视频在线免费观看| 成人综合久久网| 蜜桃久久久久久| 亚洲 欧美 日韩系列| 美女国产一区| 国产日韩成人内射视频 | 成人天堂资源www在线| 无码人妻丰满熟妇区毛片蜜桃精品| 美国三级日本三级久久99| www.色就是色| 日本中文字幕一区| 女同激情久久av久久| 美女精品一区二区| 久久国产精品国产精品| 日日欢夜夜爽一区| 污视频网址在线观看| 久久99国产精品尤物| 欧美三级午夜理伦三级富婆| 日韩avvvv在线播放| 成年人视频在线免费| 日日嗨av一区二区三区四区| 青青在线视频观看| 久久中文欧美| 少妇性饥渴无码a区免费| 久久亚洲影院| 另类小说第一页| 麻豆高清免费国产一区| 精品少妇无遮挡毛片| 精品一区二区成人精品| 国产在线视频三区| 国产成人啪免费观看软件| 欧美午夜精品一区二区| 99久久伊人精品| 成人h动漫精品一区| 国产蜜臀av在线一区二区三区| 天堂资源在线视频| 亚洲一区二区视频在线| 日韩精品――中文字幕| 色天使色偷偷av一区二区| 日韩 国产 欧美| 91精品国产色综合久久不卡蜜臀 | 亚洲国产一区二区三区在线观看| 天天干天天草天天射| 国产亚洲精品久久久久久| 欧美人xxx| 色综合久久中文字幕综合网小说| 大香伊人中文字幕精品| 国内精品久久影院| 欧美日韩卡一| 不卡一卡2卡3卡4卡精品在| 另类ts人妖一区二区三区| 国产精品一区二区欧美| 成人vr资源| www.日本在线视频| 久久综合九色| 国产真人无码作爱视频免费| 国产成人亚洲精品狼色在线| 国产三级国产精品| 亚洲欧洲一区二区在线播放| 久草视频手机在线观看| 日韩欧美中文第一页| 亚洲无码久久久久| 亚洲精品一区二区精华| 国产主播福利在线| 欧美精品午夜视频| 欧美专区福利免费| 亚洲qvod图片区电影| 亚洲婷婷影院| 一二三四中文字幕| 日韩中文字幕麻豆| 日本精品一二三区| 亚洲色图视频免费播放| 久久中文字幕免费| 欧美一级二级三级乱码| 人人九九精品| 欧美黑人一区二区三区| 久久er热在这里只有精品66| 国产精品一区二区三区精品| 色狮一区二区三区四区视频| 日韩欧美一区二| 狠狠色丁香久久婷婷综| 新91视频在线观看| 精品美女国产在线| www.天堂在线| 色偷偷9999www| 国产精品4hu.www| 蜜桃av色综合| 99热精品在线观看| 最新中文字幕免费视频| 久久精品人人爽人人爽| 国产在线视频二区| 欧美一区二区三区在线| 黄网在线免费| 亚州欧美日韩中文视频| 欧美专区一区| 自拍偷拍99| 国产在线视频一区二区| 蜜桃视频最新网址| 欧美在线观看一区二区| 国产高清视频在线| 欧美一区在线直播| 成人免费在线电影网| 免费的一级黄色片| 成人看片黄a免费看在线| 亚洲av鲁丝一区二区三区| 91精品国产手机| 婷婷视频在线| 国产综合色香蕉精品| 久久激情电影| 亚洲天堂国产视频| 国产精品黄色在线观看| 中文字幕在线观看你懂的| 亚洲欧美综合另类中字| 精精国产xxx在线视频app| 国产精品久久久久av福利动漫| 欧美日韩天堂| 亚洲精品乱码久久久久久9色| 亚洲一卡二卡三卡四卡无卡久久 | 国内精品第一页| 粉嫩av性色av蜜臀av网站| 色综合色狠狠天天综合色| 国产午夜在线视频| 国产精品成人v| 日韩在线观看| 日本中文字幕在线不卡| 一区二区三区日韩欧美| av中文字幕免费在线观看| 精品国产区一区二区三区在线观看 | 四虎免费在线观看| 668精品在线视频| 亚洲va久久久噜噜噜久久| 成人免费毛片播放| 国产精品国产三级国产普通话三级| 中文字幕在线日亚洲9| 久热国产精品视频| 中文在线免费一区三区| 免费超爽大片黄| gogo大胆日本视频一区| 波多野结衣一本一道| 日韩亚洲精品视频| 亚洲精品一区二区三区在线| 久久国产成人精品国产成人亚洲| 国产亚洲欧美日韩在线一区| 亚洲视频在线免费播放| 国内成人精品视频| 国产欧美日韩精品一区二区免费| 欧美特黄aaa| 精品成人av一区| 中文字幕在线免费| 97超碰在线播放| 日日夜夜精品视频免费 | 亚洲一区二区免费视频| 色哟哟在线观看| 91在线网站视频| 99日韩精品| 欧美日韩国产一二三区| 亚洲精品福利资源站| 中文字幕日本一区二区| 国产精品videossex国产高清| 久久久精品人体av艺术|