国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

TiDB運維文檔(上)

IT那活兒 / 2910人閱讀
TiDB運維文檔(上)

點擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!


TiDB簡介

TiDB 是 PingCAP 公司自主設(shè)計、研發(fā)的開源分布式關(guān)系型數(shù)據(jù)庫,是一款同時支持在線事務處理與在線分析處理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式數(shù)據(jù)庫產(chǎn)品,具備水平擴容或者縮容、金融級高可用、實時 HTAP、云原生的分布式數(shù)據(jù)庫、兼容 MySQL 5.7 協(xié)議和 MySQL 生態(tài)等重要特性。
目標是為用戶提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解決方案。
TiDB 適合高可用、強一致要求較高、數(shù)據(jù)規(guī)模較大等各種應用場景

1.1 架構(gòu)簡介

1.1.1 TiDB Server

SQL 層,對外暴露 MySQL 協(xié)議的連接 endpoint,負責接受客戶端的連接,執(zhí)行 SQL 解析和優(yōu)化,最終生成分布式執(zhí)行計劃。
TiDB 層本身是無狀態(tài)的,實踐中可以啟動多個 TiDB 實例,通過負載均衡組件(如 LVS、HAProxy 或 F5)對外提供統(tǒng)一的接入地址,客戶端的連接可以均勻地分攤在多個 TiDB 實例上以達到負載均衡的效果。TiDB Server 本身并不存儲數(shù)據(jù),只是解析 SQL,將實際的數(shù)據(jù)讀取請求轉(zhuǎn)發(fā)給底層的存儲節(jié)點 TiKV(或 TiFlash)。

1.1.2 PD (Placement Driver) Server

整個 TiDB 集群的元信息管理模塊,負責存儲每個 TiKV 節(jié)點實時的數(shù)據(jù)分布情況和集群的整體拓撲結(jié)構(gòu),提供 TiDB Dashboard 管控界面,并為分布式事務分配事務 ID。
PD 不僅存儲元信息,同時還會根據(jù) TiKV 節(jié)點實時上報的數(shù)據(jù)分布狀態(tài),下發(fā)數(shù)據(jù)調(diào)度命令給具體的 TiKV 節(jié)點,可以說是整個集群的“大腦”。此外,PD 本身也是由至少 3 個節(jié)點構(gòu)成,擁有高可用的能力。建議部署奇數(shù)個 PD 節(jié)點。

1.1.3 存儲節(jié)點

  • TiKV Server

    負責存儲數(shù)據(jù),從外部看 TiKV 是一個分布式的提供事務的 Key-Value 存儲引擎。存儲數(shù)據(jù)的基本單位是 Region,每個 Region 負責存儲一個 Key Range(從 StartKey 到 EndKey 的左閉右開區(qū)間)的數(shù)據(jù),每個 TiKV 節(jié)點會負責多個 Region。TiKV 的 API 在 KV 鍵值對層面提供對分布式事務的原生支持,默認提供了 SI (Snapshot Isolation) 的隔離級別,這也是 TiDB 在 SQL 層面支持分布式事務的核心。TiDB 的 SQL 層做完 SQL 解析后,會將 SQL 的執(zhí)行計劃轉(zhuǎn)換為對 TiKV API 的實際調(diào)用。所以,數(shù)據(jù)都存儲在 TiKV 中。另外,TiKV 中的數(shù)據(jù)都會自動維護多副本(默認為三副本),天然支持高可用和自動故障轉(zhuǎn)移。

  • TiFlash
    是一類特殊的存儲節(jié)點。和普通 TiKV 節(jié)點不一樣的是,在 TiFlash 內(nèi)部,數(shù)據(jù)是以列式的形式進行存儲,主要的功能是為分析型的場景加速。
數(shù)據(jù)寫入流程:
數(shù)據(jù)存儲示意圖:

1.2 五大核心特性

1.2.1 一鍵水平擴容或者縮容

得益于 TiDB 存儲計算分離的架構(gòu)的設(shè)計,可按需對計算、存儲分別進行在線擴容或者縮容,擴容或者縮容過程中對應用運維人員透明。

1.2.2 金融級高可用

數(shù)據(jù)采用多副本存儲,數(shù)據(jù)副本通過 Multi-Raft 協(xié)議同步事務日志,多數(shù)派寫入成功事務才能提交,確保數(shù)據(jù)強一致性且少數(shù)副本發(fā)生故障時不影響數(shù)據(jù)的可用性。可按需配置副本地理位置、副本數(shù)量等策略滿足不同容災級別的要求。

1.2.3 實時 HTAP

提供行存儲引擎 TiKV、列存儲引擎 TiFlash 兩款存儲引擎,TiFlash 通過 Multi-Raft Learner 協(xié)議實時從 TiKV 復制數(shù)據(jù),確保行存儲引擎 TiKV 和列存儲引擎 TiFlash 之間的數(shù)據(jù)強一致。TiKV、TiFlash 可按需部署在不同的機器,解決 HTAP 資源隔離的問題。

1.2.4 云原生的分布式數(shù)據(jù)庫

專為云而設(shè)計的分布式數(shù)據(jù)庫,通過 TiDB Operator 可在公有云、私有云、混合云中實現(xiàn)部署工具化、自動化。

1.2.5 兼容 MySQL 5.7 協(xié)議和 MySQL 生態(tài)

兼容 MySQL 5.7 協(xié)議、MySQL 常用的功能、MySQL 生態(tài),應用無需或者修改少量代碼即可從 MySQL 遷移到 TiDB。提供豐富的數(shù)據(jù)遷移工具幫助應用便捷完成數(shù)據(jù)遷移。


安裝部署

2.1 環(huán)境準備

2.1.1 Linux 操作系統(tǒng)版本要求

Linux 操作系統(tǒng)平臺
版本
Red Hat Enterprise Linux
7.3 及以上的 7.x 版本
CentOS
7.3 及以上的 7.x 版本
Oracle Enterprise Linux
7.3 及以上的 7.x 版本
Ubuntu LTS
16.04及以上的版本
  • a) 目前尚不支持 Red Hat Enterprise Linux 8.0、CentOS 8 Stream 和 Oracle Enterprise Linux 8.0,因為目前對這些平臺的測試還在進行中。
  • b) 不計劃支持 CentOS 8 Linux,因為 CentOS 的上游支持將于 2021 年 12 月 31 日終止。
  • c)  TiDB 將不再支持 Ubuntu 16.04。強烈建議升級到 Ubuntu 18.04 或更高版本。

2.1.2 軟件配置

  • 中控機軟件配置
軟件
版本
sshpass
1.06 及以上
TiUP
1.5.0 及以上


  • 目標主機建議配置軟件
軟件
版本
sshpass
1.06 及以上
numa
2.0.12 及以上
tar
任意

2.1.3 硬件配置

  • 生產(chǎn)環(huán)境
組件
CPU
內(nèi)存
硬盤類型
網(wǎng)絡
實例數(shù)量(最低要求)
TiDB
16 核+
32 GB+
SAS
萬兆網(wǎng)卡(2 塊最佳)
2
PD
4核+
8 GB+
SSD
萬兆網(wǎng)卡(2 塊最佳)
3
TiKV
16 核+
32 GB+
SSD
萬兆網(wǎng)卡(2 塊最佳)
3
TiFlash
48 核+
128 GB+
1 or more SSDs
萬兆網(wǎng)卡(2 塊最佳)
2
TiCDC
16 核+
64 GB+
SSD
萬兆網(wǎng)卡(2 塊最佳)
2
監(jiān)控
8 核+
16 GB+
SAS
千兆網(wǎng)卡
1
  • a) 單Tikv節(jié)點建議存儲2T內(nèi)數(shù)據(jù),可視服務器cpu、內(nèi)存情況增加。
  • b) Tiflash節(jié)點磁盤性能同于或高于tikv節(jié)點磁盤性能。

2.1.4 系統(tǒng)環(huán)境準備

1)在 TiKV 部署目標機器上添加數(shù)據(jù)盤EXT4文件系統(tǒng)掛載參數(shù)
生產(chǎn)環(huán)境部署,建議使用 EXT4 類型文件系統(tǒng)的 NVME 類型的 SSD 磁盤存儲 TiKV 數(shù)據(jù)文件。這個配置方案為最佳實施方案,其可靠性、安全性、穩(wěn)定性已經(jīng)在大量線上場景中得到證實。
使用 root 用戶登錄目標機器,將部署目標機器數(shù)據(jù)盤格式化成 ext4 文件系統(tǒng),掛載時添加 nodelalloc 和 noatime 掛載參數(shù)。nodelalloc 是必選參數(shù),否則 TiUP 安裝時檢測無法通過;noatime 是可選建議參數(shù)。
以 /dev/nvme0n1 數(shù)據(jù)盤為例,具體操作步驟如下:
--查看數(shù)據(jù)盤。
fdisk -l
Disk /dev/nvme0n1: 1000 GB
--創(chuàng)建分區(qū)。
parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
--格式化文件系統(tǒng)。
mkfs.ext4 /dev/nvme0n1p1
--查看數(shù)據(jù)盤分區(qū) UUID。
本例中 nvme0n1p1 的 UUID 為 c51eb23b-195c-4061-92a9-3fad812cc12f。
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 237b634b-a565-477b-8371-6dff0c41f5ab /boot
├─sda2 swap f414c5c0-f823-4bb1-8fdf-e531173a72ed
└─sda3 ext4 547909c1-398d-4696-94c6-03e43e317b60 /
sr0
nvme0n1
└─nvme0n1p1 ext4 c51eb23b-195c-4061-92a9-3fad812cc12f
--編輯 /etc/fstab 文件,添加 nodelalloc 掛載參數(shù)。
vi /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
--掛載數(shù)據(jù)盤。
mkdir /data1 && 
mount -a
--執(zhí)行以下命令,如果文件系統(tǒng)為 ext4,并且掛載參數(shù)中包含 nodelalloc,則表示已生效。
mount -t ext4
/dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)
2)檢測及關(guān)閉系統(tǒng)swap
本段介紹 swap 關(guān)閉方法。
TiDB 運行需要有足夠的內(nèi)存,并且不建議使用 swap 作為內(nèi)存不足的緩沖,這會降低性能。因此建議永久關(guān)閉系統(tǒng) swap,并且不要使用 swapoff -a 方式關(guān)閉,否則重啟機器后該操作會失效。
建議執(zhí)行以下命令關(guān)閉系統(tǒng) swap:
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p
3)檢測及關(guān)閉目標部署機器的防火墻
本段介紹如何關(guān)閉目標主機防火墻配置。
因為在 TiDB 集群中,需要將節(jié)點間的訪問端口打通才可以保證讀寫請求、數(shù)據(jù)心跳等信息的正常的傳輸。在普遍線上場景中,數(shù)據(jù)庫到業(yè)務服務和數(shù)據(jù)庫節(jié)點的網(wǎng)絡聯(lián)通都是在安全域內(nèi)完成數(shù)據(jù)交互。如果沒有特殊安全的要求,建議將目標節(jié)點的防火墻進行關(guān)閉。否則建議按照端口使用規(guī)則,將端口信息配置到防火墻服務的白名單中。
檢查防火墻狀態(tài)(以 CentOS Linux release 7.7.1908 (Core) 為例)
sudo firewall-cmd --state
sudo systemctl status firewalld.service
--關(guān)閉防火墻服務。
sudo systemctl stop firewalld.service
--關(guān)閉防火墻自動啟動服務。
sudo systemctl disable firewalld.service
--檢查防火墻狀態(tài)。
sudo systemctl status firewalld.service
4)檢測及安裝NTP服務
TiDB 是一套分布式數(shù)據(jù)庫系統(tǒng),需要節(jié)點間保證時間的同步,從而確保 ACID 模型的事務線性一致性。
目前解決授時的普遍方案是采用 NTP 服務,可以通過互聯(lián)網(wǎng)中的 pool.ntp.org 授時服務來保證節(jié)點的時間同步,也可以使用離線環(huán)境自己搭建的 NTP 服務來解決授時。
采用如下步驟檢查是否安裝 NTP 服務以及與 NTP 服務器正常同步:
步驟一執(zhí)行以下命令,如果輸出 running 表示 NTP 服務正在運行:
sudo systemctl status ntpd.service
ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: active (running) since 一 2017-12-18 13:13:19 CST; 3s ago
若返回報錯信息 Unit ntpd.service could not be found.,請嘗試執(zhí)行以下命令,以查看與 NTP 進行時鐘同步所使用的系統(tǒng)配置是 chronyd 還是 ntpd:
sudo systemctl status cronyd.service
chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-04-05 09:55:29 EDT; 3 days ago
如果你使用的系統(tǒng)配置是 chronyd,請直接執(zhí)行以下的步驟 3。
步驟二執(zhí)行 ntpstat 命令檢測是否與 NTP 服務器同步:
ntpstat
如果輸出 synchronised to NTP server,表示正在與 NTP 服務器正常同步:
synchronised to NTP server (85.199.214.101) at stratum 2
time correct to within 91 ms
polling server every 1024 s
以下情況表示 NTP 服務未正常同步:
unsynchronised
以下情況表示 NTP 服務未正常運行:
Unable to talk to NTP daemon. Is it running?
步驟三如果要使 NTP 服務盡快開始同步,執(zhí)行以下命令。可以將 pool.ntp.org 替換為你的 NTP 服務器:
sudo systemctl stop ntpd.service && 
sudo ntpdate pool.ntp.org &&
sudo systemctl start ntpd.service
步驟四如果要在 CentOS 7 系統(tǒng)上手動安裝 NTP 服務,可執(zhí)行以下命令:
sudo yum install ntp ntpdate && 
sudo systemctl start ntpd.service &&
sudo systemctl enable ntpd.service
5)配置SSH互信及sudo免密碼
對于有需求,通過手動配置中控機至目標節(jié)點互信的場景,可參考本段。通常推薦使用 TiUP 部署工具會自動配置 SSH 互信及免密登錄,可忽略本段內(nèi)容。
以 root 用戶依次登錄到部署目標機器創(chuàng)建 tidb 用戶并設(shè)置登錄密碼。
useradd tidb && 
passwd tidb
執(zhí)行以下命令,將 tidb ALL=(ALL) NOPASSWD: ALL 添加到文件末尾,即配置好 sudo 免密碼。
visudo
tidb ALL=(ALL) NOPASSWD: ALL
以 tidb 用戶登錄到中控機,執(zhí)行以下命令。將 10.0.1.1 替換成你的部署目標機器 IP,按提示輸入部署目標機器 tidb 用戶密碼,執(zhí)行成功后即創(chuàng)建好 SSH 互信,其他機器同理。
新建的 tidb 用戶下沒有 .ssh 目錄,需要執(zhí)行生成 rsa 密鑰的命令來生成 .ssh 目錄。如果要在中控機上部署 TiDB 組件,需要為中控機和中控機自身配置互信。
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.1.1
以 tidb 用戶登錄中控機,通過 ssh 的方式登錄目標機器 IP。如果不需要輸入密碼并登錄成功,即表示 SSH 互信配置成功。
ssh 10.0.1.1
[tidb@10.0.1.1 ~]$
以 tidb 用戶登錄到部署目標機器后,執(zhí)行以下命令,不需要輸入密碼并切換到 root 用戶,表示 tidb 用戶 sudo 免密碼配置成功。
sudo -su root
[root@10.0.1.1 tidb]#
6)安裝numactl工具
本段主要介紹如果安裝 NUMA 工具。
在生產(chǎn)環(huán)境中,因為硬件機器配置往往高于需求,為了更合理規(guī)劃資源,會考慮單機多實例部署 TiDB 或者 TiKV。NUMA 綁核工具的使用,主要為了防止 CPU 資源的爭搶,引發(fā)性能衰退。
注意:
NUMA 綁核是用來隔離 CPU 資源的一種方法,適合高配置物理機環(huán)境部署多實例使用。
通過 tiup cluster deploy 完成部署操作,就可以通過 exec 命令來進行集群級別管理工作。
登錄到目標節(jié)點進行安裝(以 CentOS Linux release 7.7.1908 (Core) 為例)
sudo yum -y install numactl
通過 TiUP 的 cluster 執(zhí)行完 exec 命令來完成批量安裝。
tiup cluster exec tidb-test --sudo --command "yum -y install numactl"
2.2 架構(gòu)規(guī)劃

由nginx或haproxy負載tidb接口,提供對外服務。建議方案有兩種:

  • 方案一:代理機負載全部tidb-server節(jié)點,代理機利用keepalive工具,部署主備式架構(gòu),采用VIP對外提供統(tǒng)一服務接口。
  • 方案二:代理機負載全部或分配部分tidb-server節(jié)點,根據(jù)業(yè)務情況,劃分使用哪個代理機入口。
具體架構(gòu)如下:

方案一:對外統(tǒng)一接口

方案二:對外規(guī)劃接口

2.3 集群部署

2.3.1 準備 TiUP 離線組件包

使用tiupmirrorclone命令手動打包離線組件包。
1)在線環(huán)境中安裝 TiUP 包管理器工具
  • 執(zhí)行如下命令安裝 TiUP 工具:
curl --proto =https --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
  • 重新聲明全局環(huán)境變量:
source .bash_profile
  • 確認 TiUP 工具是否安裝:
which tiup
2)使用 TiUP 制作離線鏡像
  • 在一臺和外網(wǎng)相通的機器上拉取需要的組件:
tiup mirror clone tidb-community-server-${version}-linux-amd64 ${version} --os=linux --arch=amd64
該命令會在當前目錄下創(chuàng)建一個名叫 tidb-community-server-${version}-linux-amd64 的目錄,里面包含 TiUP 管理的組件包。
  • 通過 tar 命令將該組件包打包然后發(fā)送到隔離環(huán)境的中控機:
tar czvf tidb-community-server-${version}-linux-amd64.tar.gz tidb-community-server-${version}-linux-amd64
此時,tidb-community-server-${version}-linux-amd64.tar.gz 就是一個獨立的離線環(huán)境包。

2.3.2 部署離線環(huán)境 TiUP 組件

將離線包發(fā)送到目標集群的中控機后,執(zhí)行以下命令安裝 TiUP 組件:
tar xzvf tidb-community-server-${version}-linux-amd64.tar.gz
sh tidb-community-server-${version}-linux-amd64/local_install.sh
source /home/tidb/.bash_profile
local_install.sh 腳本會自動執(zhí)行 tiup mirror set tidb-community-server-${version}-linux-amd64 命令將當前鏡像地址設(shè)置為 tidb-community-server-${version}-linux-amd64。
若需將鏡像切換到其他目錄,可以通過手動執(zhí)行 tiup mirror set 進行切換。如果需要切換到在線環(huán)境,可執(zhí)行 tiup mirror set https://tiup-mirrors.pingcap.com

2.3.3 配置初始化參數(shù)文件 topology.yaml

集群初始化配置文件需要手動編寫,完整的全配置參數(shù)模版可以參考 Github TiUP 項目配置參數(shù)模版。需要在中控機上面創(chuàng)建 YAML 格式配置文件,例如 topology.yaml:
cat topology.yaml

# # Global variables are applied to all deployments and used as the default value of
# # the deployments if a specific deployment value is missing.
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"

server_configs:
pd:
replication.enable-placement-rules: true

pd_servers:
- host: 10.0.1.4
- host: 10.0.1.5
- host: 10.0.1.6
tidb_servers:
- host: 10.0.1.7
- host: 10.0.1.8
- host: 10.0.1.9
tikv_servers:
- host: 10.0.1.1
- host: 10.0.1.2
- host: 10.0.1.3
tiflash_servers:
- host: 10.0.1.10
data_dir: /data1/tiflash/data,/data2/tiflash/data
cdc_servers:
- host: 10.0.1.6
- host: 10.0.1.7
- host: 10.0.1.8
monitoring_servers:
- host: 10.0.1.4
grafana_servers:
- host: 10.0.1.4
alertmanager_servers:
- host: 10.0.1.4

2.3.4 部署 TiDB 集群

1)執(zhí)行以下命令來部署TiDB集群
tiup cluster deploy tidb-test v4.0.0 topology.yaml --user tidb [-p] [-i /home/root/.ssh/gcp_rsa]
tiup cluster start tidb-test
2)參數(shù)說明
  • 通過 TiUP cluster 部署的集群名稱為 tidb-test;
  • 部署版本為 v4.0.0,其他版本可以執(zhí)行 tiup list tidb 獲取;
  • 初始化配置文件為 topology.yaml;
  • --user tidb:通過 tidb 用戶登錄到目標主機完成集群部署,該用戶需要有 ssh 到目標機器的權(quán)限,并且在目標機器有 sudo 權(quán)限。也可以用其他有 ssh 和 sudo 權(quán)限的用戶完成部署;
  • [-i] 及 [-p]:非必選項,如果已經(jīng)配置免密登陸目標機,則不需填寫。否則選擇其一即可,[-i] 為可登錄到部署機 root 用戶(或 --user 指定的其他用戶)的私鑰,也可使用 [-p] 交互式輸入該用戶的密碼;
  • 預期日志結(jié)尾輸出會有 Deployed cluster `tidb-test` successfully 關(guān)鍵詞,表示部署成功;
  • 部署完成后,集群相關(guān)操作可參考 cluster 命令。

2.4 集群狀態(tài)驗證

2.4.1 中控機

檢查集群狀態(tài)的命令是 tiup cluster display ,例如:
tiup cluster display tidb-test
預期結(jié)果輸出:各節(jié)點 Status 狀態(tài)信息為 Up 說明集群狀態(tài)正常。

2.4.2 監(jiān)控頁面

1)通過 {pd-ip}:{pd-port}/dashboard 登錄 TiDB Dashboard,登錄用戶和口令為 TiDB 數(shù)據(jù)庫 root 用戶和口令。如果你修改過數(shù)據(jù)庫的 root 密碼,則以修改后的密碼為準,默認密碼為空。
主頁面顯示 TiDB 集群中節(jié)點信息
2)通過 {Grafana-ip}:3000 登錄 Grafana 監(jiān)控,默認用戶名及密碼為 admin/admin。
點擊 Overview 監(jiān)控頁面檢查 TiDB 端口和負載監(jiān)控信息。
下篇文章我們講一下TIDB的日常運維,本文到此結(jié)束,謝謝!


本文作者:李仕豪(上海新炬中北團隊)

本文來源:“IT那活兒”公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129140.html

相關(guān)文章

  • TiDB Operator,讓 TiDB 成為真正的 Cloud-Native 數(shù)據(jù)庫

    摘要:和簡介作為一個開源的分布式數(shù)據(jù)庫產(chǎn)品,具有多副本強一致性的同時能夠根據(jù)業(yè)務需求非常方便的進行彈性伸縮,并且擴縮容期間對上層業(yè)務無感知。 TiDB Operator 是 TiDB 在 Kubernetes 平臺上的自動化部署運維工具。目前,TiDB Operator 已正式開源(pingcap/tidb-operator)。借助 TiDB Operator,TiDB 可以無縫運行在公有云...

    singerye 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<