Hướng dẫn cách cấu hình Galera Cluster với MariaDB trên máy chủ CentOS 7

Lượt xem
Home

MariaDB là hệ thống database mã nguồn mở tương thích với MySQL và Galera là giải pháp cho phép thiết lập multi-master cluster bằng cách sao chép đồng bộ dữ liệu. Để có thể cấu hình Galera Cluster với MariaDB trên CentOS 7. Cùng tìm hiểu bài viết dưới đây của Vietnix nhé.

Giới thiệu về Galera Cluster

Clustering (phân cụm) giúp tăng tính khả dụng cho database của bạn bằng cách phân phối các thay đổi về dữ liệu đến các server khác nhau. Mỗi khi xuất hiện một phiên bản bị lỗi, các phiên bản khác sẽ nhanh chóng thay thế để tiếp tục hỗ trợ.

Giới thiệu về Galera Cluster
Hướng dẫn cách cấu hình Galera Cluster với MariaDB trên máy chủ CentOS 7 6

Có hai cấu hình phổ biến cho cluster, đó là active-passiveactive-active. Ở active-passive, các hành động ghi (write) đều được thực hiện trên active server và sau đó được sao chép sang một hoặc nhiều passive server khác, chỉ được tiếp quản trong trường hợp active server gặp sự cố. Một số active-passive cluster cũng cho phép hành động SELECT trên passive nodes. Ở active-active, mọi node đều được read-write (đọc-ghi) và các thay đổi được thực hiện trên một node sẽ được sao chép sang tất cả các node khác.

MariaDB là một hệ thống relational database và là mã nguồn mở, hoàn toàn tương thích với MySQL RDBMS. Galera là một giải pháp database clustering (gộp nhóm cơ sở dữ liệu), bằng cách sao chép đồng bộ, cho phép bạn thiết lập các multi-master cluster. Galera tự động xử lý đồng bộ hóa dữ liệu trên các node khác nhau trong khi cho phép bạn gửi các truy vấn đọc và ghi đến bất kỳ nút nào trong cluster.

MariaDB
MariaDB

Trong bài hướng dẫn này, bạn sẽ cấu hình một active-active MariaDB Galera cluster. Đồng thời, cấu hình và kiểm tra ba server CentOS 7 sẽ hoạt động như các node trong cluster. Đây là cluster nhỏ nhất có thể cấu hình được.

Yêu cầu để cấu hình Galera Cluster với MariaDB trên CentOS 7

Để thực hiện bài hướng dẫn này, bạn cần có tài khoản đăng nhập của nhà cung cấp máy chủ mà bạn đăng ký, ngoài ra bạn cũng cần:

  • Ba server CentOS 7 được kích hoạt với private networking, mỗi server sẽ có một tài khoản non-root với quyền sudotường lửa.

Trường hợp bạn muốn cấu hình Galera Cluster với MariaDB trên VPS thì VPS của bạn cần phải đáp ứng những tiêu chí như: Đủ tài nguyên phần cứng để chạy MariaDB và Galera Cluster một cách ổn định. Điều này bao gồm dung lượng đĩa, bộ nhớ RAM và CPU. Số lượng và cấu hình tài nguyên phụ thuộc vào khối lượng công việc dự kiến và lưu lượng truy cập vào cơ sở dữ liệu.

Hiện tại Vietnix đang cung cấp nhiều gói VPS chất lượng với đa dạng hệ điều hành, dễ dàng mở rộng tài nguyên theo nhu cầu, bảo mật cao nhờ hạ tầng chống DDoS chuyên nghiệp do chính Vietnix phát triển, giá cả phải chăng,… Ngoài ra, nếu bạn không có nhiều kiến thức về kỹ thuật thì cũng không cần lo lắng. Khi mua VPS tại Vietnix, đội ngũ kỹ thuật viên chuyên nghiệp sẽ luôn sẵn sàng hỗ trợ bạn các vấn đề liên quan đến hệ thống 24/7.

Hiện tại Vietnix đang cung cấp các gói VPS phù hợp cho nhu cầu cấu hình Galera Cluster với MariaDB gồm: VPS Giá Rẻ, Cloud Server, VPS Cao Cấp, VPS GPU và VPS NVMe.

Liên hệ Vietnix ngay để được tư vấn chi tiết hơn nhé!

Bước 1 – Thêm MariaDB Repositories vào tất cả server

Đầu tiên, bạn thêm các gói MariaDB repositories tương ứng vào từng server trong 3 server của mình để có thể cài đặt đúng phiên bản MariaDB được sử dụng trong bài hướng dẫn này. Khi các repositories được cập nhật trên cả 3 server, bạn thực hiện cài đặt MariaDB.

MariaDB được xem như một sự thay thế cho MySQL, do đó trong nhiều tệp cấu hình và startup scripts, bạn sẽ thấy mysql thay vì mariadb. Trong nhiều trường hợp, chúng có thể thay thế cho nhau. Để đảm bảo tính nhất quán bạn nên sử dụng mariadb thay cho mysql.

Tại hướng dẫn này sử dụng MariaDB 10.4, vì phiên bản này không có trong repositories mặc định của CentOS, do đó bạn sẽ thực hiện thêm CentOS repositories từ bên ngoài vào cả ba server của mình, được duy trì bởi MariaDB project.

Đầu tiên, bạn thêm khóa (key) của MariaDB repository bằng cách tạo tệp repository bằng trình soạn thảo văn bản và dùng vi để thực thi:

sudo vi /etc/yum.repos.d/mariadb.repo

Tiếp theo, để vào chế độ insert của tệp hãy nhấn i và thêm đoạn code sau:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Nhấn phím esc để thoát chế độ chỉnh sửa, sau đó gõ :wq để lưu và thoát tệp.

Sau khi tạo tệp repository, bạn hãy khởi động bằng cách thực thi lệnh sau:

sudo yum makecache --disablerepo='*' --enablerepo='mariadb'

Để có thể cài đặt MariaDB, lệnh makecache được sử dụng để lưu trữ metadata của repository, với  --disablerepo  và  --enablerepo nhằm chỉ định lưu vào tệp mariadb mà bạn vừa tạo .

Output sẽ xuất hiện như sau:

Output
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
mariadb                                                                                                                                                                              | 2.9 kB  00:00:00
(1/3): mariadb/primary_db                                                                                                                                                            |  43 kB  00:00:00
(2/3): mariadb/other_db                                                                                                                                                              | 8.3 kB  00:00:00
(3/3): mariadb/filelists_db                                                                                                                                                          | 238 kB  00:00:00
Metadata Cache Created

Sau khi bạn đã kích hoạt thành công repository trên server đầu tiên của mình, hãy thực hiện tương tự cho hai server còn lại.

Khi hoàn tất việc thêm gói repository trên cả ba server của mình, tiếp theo là cài đặt MariaDB ở bước tiếp theo.

Bước 2 – Cài đặt MariaDB trên tất cả các server

Ở bước này, bạn sẽ cài đặt các gói actual MariaDB trên cả ba server.

Bắt đầu với phiên bản 10.1, cả hai gói MariaDB Server và MariaDB Galera Server được kết hợp với nhau, do đó khi bạn cài đặt MariaDB-server, thì Galera và một số dependency sẽ được tự động cài đặt cùng lúc:

sudo yum install MariaDB-server MariaDB-client

Khi có thông báo xác nhập có tiếp tục cài đặt hay không bạn nhập yes. Sau đó, bạn tiếp tục nhập yes một lần nữa để chấp nhận GPG key xác thực gói MariaDB.

Sau khi hoàn thành các thao tác trên, bạn khởi động mariadb bằng cách thực thi câu lệnh:

sudo systemctl start mariadb

Để mariadb tự khởi động mỗi khi boot, thực hiện lệnh sau:

sudo systemctl enable mariadb

Từ MariaDB phiên bản 10.4 trở đi, mặc định, người dùng root MariaDB sẽ không có mật khẩu. Vì vậy bạn có thể đặt mật khẩu cho người dùng root, sau đó đăng nhập vào MariaDB:

sudo mysql -uroot

Khi bạn đã vào MariaDB shell, hãy đổi mật khẩu bằng cách thực thi câu lệnh sau, thay thế your_password bằng mật khẩu mới của bạn:

set password = password("your_password");

Khi nhận được output như sau thì bạn đã thay đổi mật khẩu thành công:

Output
Query OK, 0 rows affected (0.001 sec)

Thực thi lệnh dưới đây để thoát khỏi MariaDB shell:

quit;

Bây giờ, bạn đã sẵn sàng để có thể cấu hình cluster. Tuy nhiên, bạn cần dựa vào rsync và policycoreutils-python ở các bước sau để đồng bộ hóa các server và kiểm soát Security-Enhanced Linux (SELinux). Vì vậy, hãy cài đặt rsyncpolicycoreutils-python, nếu bạn chưa cài đặt:

sudo yum install rsync policycoreutils-python

Câu lệnh trên xác nhận các phiên bản mới nhất của rsyncpolicycoreutils-python đã được cài đặt. Có thể là thông báo bạn upgrade hoặc cài đặt chúng.

Sau khi hoàn thành các thao tác trên, bạn thực hiện tương tự cho server còn lại.

Đến đây, bạn đã cài đặt thành công MariaDB ở mỗi server.

Bước 3 – Cấu hình Node đầu tiên

Ở bước này, bạn sẽ cấu hình Galera node đầu tiên. Cấu hình của mỗi node trong cluster cần phải gần như giống nhau. Do đó, cần thực hiện tất cả các cấu hình trên server đầu tiên, sau đó sao chép sang các server còn lại.

Mặc định, MariaDB được cấu hình để kiểm tra thư mục /etc/mysql/conf.d để lấy các thiết lập cấu hình bổ sung từ các tệp .cnf . Tạo một tệp trong thư mục này với tất cả cluster-specific directives (các lệnh cụ thể cho cluster ):

sudo vi /etc/my.cnf.d/galera.cnf

Thêm đoạn code sau vào tệp vừa tạo. Cấu hình này chỉ định các cài đặt cluster khác nhau, chi tiết về máy chủ hiện tại và các máy chủ khác có trong cluster, và các thiết lập liên quan đến sao chép.

Lưu ý các địa chỉ IP trong cấu hình là địa chỉ private của các server tương ứng. Bạn thay thế First_Node_IP, Second_Node_IP, Third_Node_IP, This_Node_IP, This_Node_Name bằng các địa chỉ IP tương ứng ở trên server của bạn:

[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="test_cluster"
wsrep_cluster_address="gcomm://First_Node_IP,Second_Node_IP,Third_Node_IP"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="This_Node_IP"
wsrep_node_name="This_Node_Name"
  • Ở 5 dòng đầu tiên, sửa đổi hoặc xác nhận lại các cài đặt MariaDB / MySQL sẽ cho phép cluster hoạt động chính xác. Ví dụ: Galera sẽ không hoạt động với MyISAM hoặc các engine lưu trữ non-transactional và mysqld không được ràng buộc với địa chỉ IP cho localhost.
  • Phần ” Galera Provider Configuration ” cấu hình MariaDB components để cung cấp API sao chép WriteSet. Trong trường hợp này, API là Galera, vì Galera là nơi cung cấp wsrep (WriteSet Replication). Bạn sẽ chỉ định các tham số để cấu hình môi trường replication ban đầu.
  • Ở phần ” Galera Cluster Configuration ” sẽ xác định cluster, cluster members theo địa chỉ IP hoặc resolved domain name (tên miền đã được chuyển đổi thành địa chỉ IP tương ứng của server) và đặt tên cho cluster để các member tham gia đúng nhóm. Bạn có thể đặt wsrep_cluster_name theo mong muốn của bạn, tuy nhiên đối wsrep_cluster_address, bạn phải sửa đổi thành địa chỉ private IP của ba server.
  • Tiếp theo ở mục “Galera Synchronization Configuration“, sẽ xác định cách để cluster giao tiếp và đồng bộ hóa dữ liệu giữa các member. Phần này sẽ được sử dụng trong trường hợp một node bị mất kết nối, thì quá trình state transfer sẽ thực thi, để khi node kết nối trở lại sẽ đảm bảo tính toàn vẹn của cluster. Hiện tại bạn đang sử dụng rsync, vì độ phổ biến và đủ để đáp ứng nhu cầu của người dùng.
  • Cuối cùng là phần “Galera Node Configuration” xác định địa chỉ IP và tên của server hiện tại. Phần này giúp dự đoán các sự cố có thể xảy ra trong logs và tham chiếu đến từng máy chủ theo nhiều cách khác nhau. wsrep_node_address phải khớp với địa chỉ của server mà bạn đang sử dụng, tuy nhiên ở wsrep_node_name thì bạn có thể đặt tên theo mong muốn của bạn để có thể dễ dàng xác định node trong log files.

Sau khi đã hoàn tất việc cài đặt ở tệp cấu hình cluster, bạn sao chép nội dung vào clipboard (bộ nhớ tạm), sau đó lưu và đóng tệp.

Bây giờ bạn đã cấu hình thành công node đầu tiên, kế đến, bạn hãy cấu hình các node còn lại ở bước tiếp theo.

Bước 4 – Cấu hình các Node còn lại

Để tiếp tục, bạn sẽ cấu hình hai node còn lại. Ở node thứ hai của bạn, hãy mở tệp cấu hình như sau:

sudo vi /etc/mysql/my.cnf.d/galera.cnf

Dán cấu hình mà bạn đã sao chép từ node đầu tiên, sau đó cập nhật Galera Node Configuration để sử dụng địa chỉ IP hoặc resolvable domain name cho node mà bạn đang thiết lập. Cuối cùng, cập nhật tên của node, và bạn có thể đặt tên theo mong muốn của mình để có thể dễ dàng xác định node trong log file:

. . .
# Galera Node Configuration
wsrep_node_address="This_Node_IP"
wsrep_node_name="This_Node_Name"
. . .

Sau đó hãy lưu và thoát tệp.

Khi bạn đã hoàn thành các thao tác này, hãy thực hiện tương tự cho node thứ ba.

Sau khi Galera được cấu hình trên tất cả các node, mọi thứ gần như đã sẵn sàng để sử dụng cluster. Tuy nhiên, bạn phải đảm bảo tường lửa đã mở các port phù hợp và cũng cần phải tạo SELinux Policy cho Galera để đảm bảo tính bảo mật của hệ thống.

Bước 5 – Bật tường lửa ở các server

Trong bước này, bạn sẽ cấu hình tường lửa để mở các port cần thiết cho phép các node có thể giao tiếp với nhau.

Ở mỗi server, để kiểm tra trạng thái của tường lửa bạn mà bạn đã thiết lập trong phần Yêu cầu như sau:

sudo firewall-cmd --list-all

Trong trường hợp này, chỉ lưu lượng SSH, DHCP, HTTP và HTTPS được phép truy cập:

Output
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client http https
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Lúc này nếu bạn cố gắng khởi động cluster, sẽ dẫn đến thất bại vì tường lửa chặn các kết nối giữa các node. Vì vậy để tránh trường hợp này, bạn hãy thêm các rule để lưu lượng truy cập MariaDB và Galera được thông qua.

Galera có thể sử dụng bốn port sau:

  • Port 3306 sử dụng phương pháp mysqldump đối với MariaDB client connections and State Snapshot Transfer.
  • Port 4567 được sử dụng cho lưu lượng sao chép Galera Cluster. Để sao chép dữ liệu giữa các nút, port này sẽ dùng cả UDP và TCP.
  • Port 4568 sử dụng cho Incremental State Transfers, hoặc IST, quá trình này cho phép các node khác trong cụm gửi các phần dữ liệu bị thiếu cho node đang bị mất kết nối
  • Port 4444 sử dụng cho tất cả State Snapshot Transfers, hoặc SST, là cơ chế mà sử sụng các joiner node (các node mới tham gia vào cluster) để nhận trạng thái và dữ liệu từ một donor node (một node khác trong cluster).

Ở ví dụ này, bạn sẽ mở cả bốn port khi thiết lập. Tuy nhiên, sau khi xác nhận được rằng quá trình sao chép đang hoạt động tốt, bạn nên đóng các port không cần thiết và hạn chế lưu lượng truy cập cho phép giữa các server trong cluster.

Bạn sẽ mở các port bằng các lệnh như sau:

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4567/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4568/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4444/tcp
sudo firewall-cmd --permanent --zone=public --add-port=4567/udp

Ở đây, bạn sẽ sử dụng --zone = public  và  --add-port =, lệnh firewall-cmd đang mở các port này cho public traffic. --permanent đảm bảo rằng các luật này sẽ được lưu trữ và tồn tại ngay cả khi hệ thống khởi động lại.

Lưu ý: Bạn có thể hạn chế truy cập ngay lập tức vào các port được mở, tùy thuộc vào các dịch vụ khác đang chạy trên server của bạn.

Bây giờ, hãy thêm từng server vào public bằng cách thực thi các lệnh sau, đồng thời thay thế galera-node-1-ip, galera-node-2-ip, galera-node-3-ip bằng địa chỉ private IP tương ứng của các node:

sudo firewall-cmd --permanent --zone=public --add-source=galera-node-1-ip/32
sudo firewall-cmd --permanent --zone=public --add-source=galera-node-2-ip/32
sudo firewall-cmd --permanent --zone=public --add-source=galera-node-3-ip/32

Tiếp theo, bạn hãy reload lại tường lửa để áp dụng các thay đổi:

sudo firewall-cmd --reload

Sau khi bạn đã cấu hình tường lửa của mình trên node đầu tiên, hãy thực hiện tương tự với node thứ hai và ba.

Đến đây, bạn đã cấu hình tường lửa thành công, tiếp theo là tạo SELinux policy.

Bước 6 – Tạo SELinux Policy

Đến đây bạn cần tạo SELinux Policy cho phép tất cả các node trong cluster có thể giao tiếp với nhau và thực hiện các hoạt động của chúng.

SELinux là một Linux kernel module được sử dụng để cải thiện tính bảo mật của các hệ điều hành thông qua việc hỗ trợ kiểm soát truy cập và các chính sách kiểm soát truy cập bắt buộc. Trên CentOS SELinux được kích hoạt theo mặc định và giới hạn các hoạt động của MariaDB daemon .

Để tạo SELinux Policy bạn cần thực hiện các hoạt động khác nhau trên cluster với chế độ SELinux được thiết lập là permissive (cho phép) cho MySQL. Sau đó, bạn sẽ tạo policy từ các event đã đăng nhập và cuối cùng thiết lập chế độ SELinux thành enforcing sau khi chính sách được cài đặt thành công.

Đầu tiên, để cho phép truy cập vào các port cần sử dụng bằng cách thực thi các lệnh sau trên cả ba server:

sudo semanage port -a -t mysqld_port_t -p tcp 4567
sudo semanage port -a -t mysqld_port_t -p udp 4567
sudo semanage port -a -t mysqld_port_t -p tcp 4568
sudo semanage port -a -t mysqld_port_t -p tcp 4444

Lưu ý: Bạn có thể nhận được ValueError  khi cho phép truy cập vào các port trên. Việc này có nghĩa là trạng thái SELinux của port đó đã được cài đặt, tuy nhiên sẽ không ảnh hưởng đến tiến trình của bài hướng dẫn.

Ở các lệnh trên, bạn sử dụng semanage cùng với -a để thêm các port được chỉ định và bỏ qua database server.

Tiếp theo, thực thi lệnh sau trên cả ba server, tạm thời đặt MySQL SELinux domain ở chế độ permissive.

sudo semanage permissive -a mysqld_t

Lệnh này có thể mất một vài phút để hoàn tất và sẽ không hiển thị output.

Tiếp theo, bạn ngắt kết nối database server trên tất cả các node để bạn có thể bootstrap (khởi động) database cluster với các SELinux policy được chia sẻ. Bạn hãy sử dụng lệnh sau để ngắt kết nối trên cả ba node:

sudo systemctl stop mariadb

Bây giờ, bạn hãy bootstrap cluster để tạo các event giao tiếp giữa các inter-node mà được thêm vào SELinux Policy. Tại node đầu tiên, bootstrap cluster bằng cách thực thi lệnh như sau:

sudo galera_new_cluster

Tiến hành tạo database và bảng để lưu trữ các SST event bằng cách chạy như sau trên node đầu tiên:

mysql -u root -p -e 'CREATE DATABASE selinux;
CREATE TABLE selinux.selinux_policy (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id));
INSERT INTO selinux.selinux_policy VALUES ();'

Khởi động server trên node thứ hai:

sudo systemctl start mariadb

Sau đó thực hiện tương tự ở node thứ ba:

sudo systemctl start mariadb

Sẽ không có bất kỳ output nào cho câu lệnh trên. Tiếp thep, để tạo IST event bạn thực hiện như sau trên cả ba server:

mysql -u root -p -e 'INSERT INTO selinux.selinux_policy VALUES ();'

Bạn sẽ thực thi các lệnh sau trên cả ba máy chủ để tạo và kích hoạt SELinux policy:

sudo grep mysql /var/log/audit/audit.log | sudo audit2allow -M Galera

Lệnh đầu tiên sẽ tìm kiếm các events được tạo trong audit.log và dẫn đến module có tên là Galera.pp được tạo bởi công cụ audit2allow. Bạn nhận output như sau:

Output
******************** IMPORTANT ***********************
To make this policy package active, execute:

semodule -i Galera.pp

Tiếp theo, bạn thực thi lệnh được hiển thị trong phần output để cài đặt module:

sudo semodule -i Galera.pp

Bây giờ, policy đang hoạt động, hãy tắt chế độ permissive ở MariaDB server bằng cách:

sudo semanage permissive -d mysqld_t

Bạn đã tạo và kích hoạt thành công SELinux Policy.

Xem thêm: Hướng dẫn cách Disable SELinux trên CentOS 7

Bước 7 – Khởi động cluster

Ở bước này, bạn khởi động MariaDB cluster. Để bắt đầu, bạn cần dừng MariaDB service đang chạy để có thể khởi động cluster trực tuyến.

Dừng MariaDB trên cả ba server

Sau khi dừng MariaDB service, việc thực hiện hành động này trên các máy chủ của bạn theo một trình tự cụ thể rất quan trọng. Trình tự shutdown này sẽ đảm bảo node đầu tiên sẽ bootstrap cluster một cách an toàn mỗi khi được khởi động.

Đầu tiên, bạn hãy chạy lệnh sau trên node thứ ba:

sudo systemctl stop mariadb

Tiếp theo, dừng service đang chạy trên node thứ hai:

sudo systemctl stop mariadb

Cuối cùng, bạn sẽ dừng service trên node đầu tiên:

sudo systemctl stop mariadb

systemctl sẽ không hiển thị kết quả cho các lần thực thi lệnh trên, vì vậy để kiểm tra xem đã thực hiện thành công hay chưa, bạn có thể sử dụng lệnh sau trên mỗi server của mình:

sudo systemctl status mariadb

Dòng cuối cùng trong output sẽ được hiển thị như sau:

Output
. . . 
Apr 26 03:34:23 galera-node-01 systemd[1]: Stopped MariaDB 10.4.4 database server.

Sau khi bạn đã tắt mariadb trên tất cả các server.

Kích hoạt node đầu tiên

Để kích hoạt node đầu tiên, bạn sẽ cần sử dụng một startup script đặc biệt. Cách bạn cấu hình cluster, để nhận được trạng thái ban đầu , mỗi node trực tuyến sẽ cố gắng kết nối ít nhất với một node khác được chỉ định trong tệp galera.cnf. Nếu không sử dụng galera_new_cluster script cho phép systemd truyền tham số --wsrep-new-cluster, systemctl start mariadb thông thường sẽ thất bại vì không có node nào đang chạy cho node đầu tiên kết nối.

sudo galera_new_cluster

Lệnh này sẽ không hiển thị output khi thực thi thành công. Sau khi hoàn tất, node này sẽ được đăng ký là một phần của cluster và bạn sẽ sử dụng lệnh sau để xem thông tin về node vừa đăng ký:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Output sẽ xuất hiện như sau:

Output
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 1     |
+--------------------+-------+

Trên các node còn lại, bạn có thể bắt đầu mariadb. Khi được khởi động, các node này sẽ tìm kiếm member có trong danh sách cluster đang trực tuyến để kết nối và trở thành member của cluster.

Kích hoạt node thứ hai

Bây giờ bạn có thể kích hoạt node thứ hai bằng cách sử dụng mariadb:

sudo systemctl start mariadb

Bạn sẽ không nhận được output cho lệnh trên, tuy nhiên bạn sẽ thấy kích thước cluster sẽ tăng lên mỗi khi có node trở thành member của cluster, bằng cách sử dụng lệnh sau:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Dựa vào output trên, bạn có thể thấy node thứ hai được tham gia vào cluster và hiện có tổng cộng hai node.

Output
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 2     |
+--------------------+-------+

Kích hoạt node thứ ba

Cuối cùng, bạn sẽ kích hoạt node thứ ba, một cách tương tự, bạn sẽ dùng mariadb:

sudo systemctl start mariadb

Thực thi lệnh sau để tìm kích thước của cluster:

mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Bạn sẽ nhận được output như sau, cho biết rằng node thứ ba đã tham gia vào cluster và đã có tổng cộng ba node.

Output
+--------------------+-------+
| Variable_name      | Value |
+--------------------+-------+
| wsrep_cluster_size | 3     |
+--------------------+-------+

Lúc này, toàn bộ cluster đang trực tuyến và giao tiếp thành công. Trong bước tiếp theo, bạn có thể đảm bảo các cài đặt đã đi vào hoạt động bằng cách kiểm tra quá trình sao chép.

Bước 8 – Kiểm thử quá trình sao chép

Đến đây, bạn đã thực hiện các bước cài đặt để cluster của mình có thể sao chép từ bất kỳ node nào sang node khác, được gọi là active-active replication. Bạn hãy kiểm tra xem liệu quá trình sao chép này có hoạt động như mong đợi hay không.

Thực hiện hành động ghi vào node đầu tiên

Bạn sẽ bắt đầu bằng cách thực hiện các thay đổi trên database ở node đầu tiên. Các lệnh sau sẽ tạo ra database, có tên gọi là playground và tạo một bảng bên có tên là equipment.

mysql -u root -p -e 'CREATE DATABASE playground;
CREATE TABLE playground.equipment ( id INT NOT NULL AUTO_INCREMENT, type VARCHAR(50), quant INT, color VARCHAR(25), PRIMARY KEY(id));
INSERT INTO playground.equipment (type, quant, color) VALUES ("slide", 2, "blue");'

Ở câu lệnh trước, CREATE DATABASE tạo ra một database có tên là playground. Câu lệnh CREATE tạo bảng equipment trong database playground, có cột tên là id được khai báo với AUTO_INCREMENT và các cột khác. Cột type, quantcolor được khai báo để lưu trữ loại, số lượng và màu sắc của thiết bị tương ứng. Lệnh INSERT sẽ chèn dữ liệu vào bảng này với giá trị tương ứng là slide, số lượng là 2 và màu sắc là blue.

Bây giờ bạn đã thêm được 1 dòng dữ liệu trong bảng vừa tạo.

Thực hiện hành động đọc và ghi vào node thứ hai

Tiếp theo, hãy xác minh quá trình sao chép đang hoạt động ở node thứ hai, bạn có thể sử dụng lệnh sau:

mysql -u root -p -e 'SELECT * FROM playground.equipment;'

Nếu quá trình này đang hoạt động, dữ liệu mà bạn đã thêm ở node đầu tiên sẽ hiển thị trong output:

Output
+----+-------+-------+-------+
| id | type  | quant | color |
+----+-------+-------+-------+
|  1 | slide |     2 | blue  |
+----+-------+-------+-------+

Từ node này, bạn có thể ghi dữ liệu vào cluster:

mysql -u root -p -e 'INSERT INTO playground.equipment (type, quant, color) VALUES ("swing", 10, "yellow");'

Thực hiện hành động đọc và ghi trên node thứ ba

Từ node thứ ba, bạn có thể đọc tất cả dữ liệu bằng cách thực hiện câu truy vấn trên bảng như sau:

mysql -u root -p -e 'SELECT * FROM playground.equipment;'

Output sẽ được hiển thị như sau:

Output
   +----+-------+-------+--------+
   | id | type  | quant | color  |
   +----+-------+-------+--------+
   |  1 | slide |     2 | blue   |
   |  2 | swing |    10 | yellow |
   +----+-------+-------+--------+

Tại node thứ ba này, bạn cũng có thể thêm một dữ liệu khác:

mysql -u root -p -e 'INSERT INTO playground.equipment (type, quant, color) VALUES ("seesaw", 3, "green");'

Thực hiện hành động đọc trên node đầu tiên

Quay trở lại node đầu tiên, bạn có thể xác minh việc dữ liệu của bạn sẽ có sẵn ở mọi node:

mysql -u root -p -e 'SELECT * FROM playground.equipment;'

Bạn sẽ nhận được output như sau:

Output
   +----+--------+-------+--------+
   | id | type   | quant | color  |
   +----+--------+-------+--------+
   |  1 | slide  |     2 | blue   |
   |  2 | swing  |    10 | yellow |
   |  3 | seesaw |     3 | green  |
   +----+--------+-------+--------+

Đến đây, bạn đã xác minh thành công việc bạn có thể thực hiện thao tác ghi vào tất cả các node và quá trình sao chép đã thực hiện một cách chính xác.

Với 11 năm hoạt động Vietnix hỗ trợ cho hơn 50.000 khách hàng cá nhân và doanh nghiệp phát triển kinh doanh trên internet. Vietnix luôn chú trọng đầu tư vào hạ tầng và nhân sự chất lượng nhằm mang đến cho khách hàng một dịch vụ ổn định nhất. Tính đến thời điểm hiện tại Vietnix tự hào vì đã đạt được những con số ấn tượng như sau:

  • 50.000 khách hàng.
  • 97% khách hàng đánh giá 5* và giới thiệu dịch vụ sau khi sử dụng.
  • 89% khách hàng duy trì dịch vụ đến thời điểm hiện tại.
  • 100.000 dịch vụ được kích hoạt.
  • Thương hiệu Việt Nam xuất sắc 2022.

Nhanh tay đăng ký Vietnix VPS ngay và trải nghiệm dịch vụ ổn định, tốc độ cao, hỗ trợ nhanh chóng với nhiều ưu đãi hấp dẫn nhất.

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
  • Hotline: 1800 1093.
  • Email: sales@vietnix.com.vn

Lời kết

Hiện tại qua hướng dẫn về cấu hình Galera Cluster với MariaDB trên CentOS 7, bạn đã cấu hình thành công Galera test cluster với ba node đang hoạt động. Nếu bạn có dự định sử dụng Galera cluster trong production, thì bạn nên thử với ít nhất năm node.t Trong quá trình thao tác nếu còn gì thắc mắc bạn có thể liên hệ Vietnix để được tư vấn nhé.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (149 bình chọn)

Hưng Nguyễn

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Chỉ số tăng trưởng

Điểm Desktop

100 (+39)

Điểm Mobile

100 (+67)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

99 (+28)

Điểm Mobile

100 (+50)

Core Web Vitals

Passed

Lĩnh vực

SEO

Chỉ số tăng trưởng

Điểm Desktop

99 (+26)

Điểm Mobile

98 (+59)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

100 (+8)

Điểm Mobile

98 (+35)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Chỉ số tăng trưởng

Điểm Desktop

100 (+61)

Điểm Mobile

100 (+61)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Võ Thiên Tòng

25 Tháng 2 lúc 21:09

·

Mình muốn gửi lời cảm ơn chân thành đến Team Vietnix, anh Hưng Nguyễn, anh Vietnix Trung, em Quốc Huy đã hỗ trợ tối ưu Page Speed Insight (PSI) cho website vanvoiminhhoa.vn của mình.
Biết đến anh Hưng đã lâu nhưng chưa có duyên sử dụng dịch vụ bên anh. Tình cờ thấy được bài Post của anh về việc hỗ trợ tối ưu PSI miễn phí chỉ với vài Slot, thấy AE cmt khá nhiều nên cũng không nghĩ tới lượt mình. Hôm sau đánh liều inbox 1 phen xem sao thì may mắn được đưa vào danh sách. Vài ngày sau được Team Vietnix liên hệ và hỗ trợ.
Kết quả đạt được:
• Điểm xanh lè xanh lét
• Tốc độ tải trang nhanh hơn hẳn
• Các chỉ số cũng được cải thiện đáng kể
• Và mình tin rằng với việc PSI được cải thiện cũng thúc đẩy những thứ khác đi lên theo!
Mình thực sự hài lòng với dịch vụ của Vietnix và muốn giới thiệu đến tất cả mọi người:
• Dịch vụ Wordpress Hosting: Tốc độ nhanh, ổn định, bảo mật cao, hỗ trợ kỹ thuật 24/7. (https://vietnix.vn/wordpress-hosting/)
• Dịch vụ Business Hosting: Dung lượng lớn, phù hợp cho website có lượng truy cập cao, tích hợp nhiều tính năng cao cấp. (https://vietnix.vn/business-hosting/)
Đặc biệt, Vietnix đang có chương trình ưu đãi:
• Giảm giá 20% trọn đời khi nhập code THIENTONG_PAGESPEED tại trang thanh toán (Chu kỳ 12 tháng trở lên)
• Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website
Cám ơn Vietnix một lần nữa!
#Vietnix #Vanvoiminhhoa #Pagespeedinsight
Trước khi tối ưu
Sau khi tối ưu
Thiện Nguyễn - CEO SEO Dạo

5 Tháng 3 lúc 16:21

·

CORE WEB VITAL YẾU TỐ XẾP HẠNG TÌM KIẾM SEO
Core Web Vitals là một tập hợp các chỉ số đo lường hiệu suất của trang web từ góc độ người dùng, được Google sử dụng để đánh giá trải nghiệm người dùng trên các trang web. Các chỉ số chính bao gồm:
– Largest contentful paint (LCP): Tốc độ render của page. Mục tiêu là dưới 2,5 giây.
– First input delay (FID): Tốc độ phản hồi của website với tương tác của người dùng. Mục tiêu là dưới 100ms.
– Cumulative Layout Shift (CLS): Độ ổn định của bố cục trang. Mục tiêu là dưới 0.1.
Tất cả các chỉ số này đo lường các khía cạnh quan trọng của trải nghiệm người dùng trên trang web. Google đã công bố rằng từ tháng 5 năm 2021, các Core Web Vitals sẽ được sử dụng làm một trong các yếu tố đánh giá trong việc xếp hạng trang web trên kết quả tìm kiếm. Do đó, hiểu và cải thiện các Core Web Vitals là rất quan trọng đối với SEO.
Tóm lại, Core Web Vitals không chỉ giúp cải thiện hiệu suất và xếp hạng trang web trên công cụ tìm kiếm, mà còn cải thiện trải nghiệm của người dùng khi họ truy cập và tương tác với trang website.
P/s: mình đang có gói hỗ trợ đặc biệt cho anh em tối ưu tốc độ bên VIETNIX:
– Giảm 20% lifetime dịch vụ Hosting Business và Hosting Wordpress chu kỳ 12 tháng trở lên.
– Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website.
Anh em có nhu cầu đăng ký qua bạn Vietnix Trung này nhé và nhập mã SEODAO_PAGESPEED để được ưu đãi nhé.😁
Trước khi tối ưu
Sau khi tối ưu SEO Dạo
Icharm review

5 Tháng 3 lúc 15:43

·

[Mình vừa được hỗ trợ tối ưu page speed website]
Trước khi được tối ưu, web của mình điểm rất thấp, đặc biệt là mobile chỉ có 39. Cơ duyên thế nào lúc lướt face lại va phải chương trình tối ưu pagespeed bên Vietnix.
Sau khi được Trần Hoàng Phúc và team Vietnix hỗ trợ nhiệt tình, điểm web vọt lên 98 99 (như hình bên dưới). Dùng thử web thì thấy quá là mượt, 10 điểm cho team Vietnix.
Nói thật thì mình thật sự ấn tượng về sự nhiệt huyết, tận tâm và rất chuyên nghiệp bên Vietnix.
Anh em có nhu cầu về hosting hay có vấn đề về website như:
1. Web load chậm
2. Khách rời web vì đợi tải nội dung, hình ảnh lâu
3. Hay tất tần tật mọi thứ về website
THÌ LIÊN HỆ NGAY VIETNIX NHÉ!
Và đừng quên dùng pass “ICHARM_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting. Quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
Trước khi tối ưu
Sau khi tối ưu
Hoàng Nguyễn

29 Tháng 2 lúc 17:04

·

Xin chào mọi người! Vừa rồi mình có sử dụng dịch vụ tối ưu website, tăng tốc độ tải trang pagespeed của Vietnix kết quả trên cả tuyệt vời nên mình viết bài này để chia sẻ thông tin với các bạn.
Lý do mình chọn dịch vụ tối ưu tốc độ website của Vietnix:
✅ Đội ngũ chuyên gia giàu kinh nghiệm: Đã tối ưu thành công cho hàng nghìn website trong nhiều lĩnh vực khác nhau. Các bạn nhân viên rất thân thiện, nhiệt tình và chủ động trong quá trình làm việc để cập nhật tiến độ.
✅ Quy trình chuyên nghiệp:
– Kiểm tra và phân tích: Vietnix sử dụng các công cụ tiên tiến để kiểm tra và phân tích tốc độ website của bạn.
– Xác định nguyên nhân: Vietnix xác định nguyên nhân khiến website tải chậm và đưa ra giải pháp tối ưu phù hợp.
– Tối ưu hóa website: Vietnix áp dụng các kỹ thuật tối ưu tiên tiến nhất để tăng tốc độ tải trang.
– Báo cáo kết quả: Vietnix cung cấp báo cáo chi tiết về kết quả tối ưu hóa website.
Công nghệ tiên tiến: Vietnix sử dụng các công nghệ tối ưu mới nhất như LiteSpeed, LSCache, Memcached, Redis, v.v.
✅ Cam kết kết quả: Vietnix cam kết tăng tốc độ website của bạn lên tối thiểu 90%.
✅ Giá cả cạnh tranh: Vietnix cung cấp dịch vụ tối ưu tốc độ website với mức giá cạnh tranh nhất trên thị trường.
📣 Để đăng ký sử dụng dịch vụ tối ưu tốc độ website và các dịch vụ khác như hosting, vps, domain… các bạn có thể đăng ký tại https://portal.vietnix.vn/aff.php?aff=57 hoặc Inbox cho sếp Vietnix Trung nhé.
Các bạn có thể kiểm tra tốc độ trang của mình https://lasan.edu.vn hoặc một vài trang khác đã sử dụng dịch vụ của Vietnix như sau:
https://pagespeed.web.dev/…/https…/v8beqewyt2…
https://pagespeed.web.dev/…/https…/etiohjvtl4…
https://pagespeed.web.dev/…/https…/yczuqpw6d1…
https://pagespeed.web.dev/…/https…/xf9y65kuzk…
https://pagespeed.web.dev/…/https…/fdrsms15en…
https://pagespeed.web.dev/…/https…/s7p9cgzeri…
Trước khi tối ưu
Sau khi tối ưu
Dũng cá xinh

30 Tháng 1 lúc 19:09

·

[Đỉnh]
Em có dùng hosting, vps, cloud vps, cloud server, dedicated server của rất nhiều bên từ trong nước đến nước ngoài để hosting khoảng 2,000+ domain. Mỗi bên đều có ưu nhược khác nhau, nhưng có 1 số bên đặc biệt “bá đạo”, trong đó có: Vietnix!!!!

Lần đầu tiên em được cả CEO Hưng Nguyễn lẫn Master về dev Vietnix Trung của 1 đơn vị hàng đầu liên quan đến Hosting, Server support từ A – Z (từ Zalo, Tele, đến FB và cả Phone)

Em có khá nhiều web dạng Big Data (bài, ảnh, database, data) lên đến hàng trăm Gb. Càng to thì nó càng có nhiều vấn đề về phần phản hồi ban đầu (nhược điểm cố hữu của php wordpress so với nativejs, reactjs, html, headless,…), và anh em Vietnix có nhã ý hỗ trợ xử lý phần Speed Insight này.

Kết quả thực sự kinh ngạc, từ cách trao đổi đến xử lý vấn đề, cut off những cái cần cut off, xử lý rất sâu vấn đề và gợi ý rất nhiều ý tưởng optimize hệ thống!!!! Thực sự quá hài lòng về kết quả cũng như cách tương tác của các đầu tầu bên Vietnix ^^!!!

Nhân cơ duyên được kết nối với những cao thủ của Vietnix, em xin chia sẻ và lan tỏa để nhiều anh em có cơ hội được sử dụng những dịch vụ tốt nhất với giá vô cùng hợp lý!!!!

1 – Với anh em chưa có hosting, em đặc biệt recommend sử dụng hosting bên Vietnix:
– Sử dụng mã DUNGCAXINH_PAGESPEED sẽ được giảm 20% trọn đời (lifetime luôn)
– Áp dụng các gói Hosting Business, Hosting wordpress và reg 1 năm trở lên
– Anh em chưa biết cách reg thì còm men hoặc ib để em hướng dẫn hoặc nhờ các bạn bên Vietnix support từ A – Z

2 – Anh em có hosting rồi và muốn build blog hoặc web = wordpress mà chưa có giao diện thì nhân tiện em đang có tài khoản Premium bên Envato, em sẽ tặng bất kỳ giao diện nào có trên Envato Themes (Link em để dưới còm men) ạ. Cả nhà còm hoặc ib em Themes mà mọi người “chim ưng”, em sẽ cho anh em tải về, up drive và gửi ạ!!! (Chương trình này kéo dài đến ngày 29 tết âm lịch ạ)

3 – BEST NHẤT luôn!!!! Anh em nào mua hosting dùng mã DUNGCAXINH_PAGESPEED sẽ được tối ưu 100 điểm tốc độ cho 1 web (đây là ưu đãi riêng của CEO Hưng Nguyễn dành cho bạn bè của #dungcaxinh ^^) (Giá trị nhất là cái vụ số 3 này anh chị em nhé ^^), cơ hội vàng để move về đơn vị hosting uy tín là đây ^^!!!!

Một lần nữa xin chân thành cám ơn 2 đồng chí em: Hưng Nguyễn và Vietnix Trung đã giải được một bài toán khó cho các trang WP Big data mà anh loay hoay bao lâu nay chưa tìm ra đáp án!!! Chúc Vietnix ngày càng phát triển và có một năm 2024 đại đại thắng nhé ^^ !!!!!
#SEO #Vietnix #dungcaxinh

Trước khi tối ưu
Sau khi tối ưu
Hiếu AI

2 Tháng 2 lúc 21:06

·

UY TÍN – TẬN TÂM – TỐC ĐỘ

3 từ trên là vẫn chưa đủ để nói về quy trình làm việc cực chuyên nghiệp của team Vietnix.Chuyện là mình có con website chính đang có lượt truy cập organic hàng ngày cũng tương đối (hình 1)

Vấn đề là, con site này đang nằm trên hosting dùng chung nên tốc độ load chưa nhanh, tốc độ load chưa nhanh thì trải nghiệm visitor chưa tốt, trải nghiệm visitor chưa tốt thì tỷ lệ chuyển đổi ra đơn hàng kiểu gì thì kiểu cũng sẽ bị ảnh hưởng.

Biết rõ là đang mất tiền nhưng không biết xử lý như lào, nghĩ mà cay.

Đang loay hoay thì vận may nó tới, hôm qua đang lướt phở bò thấy a Nguyễn Việt Dũng đăng bài, rảnh nên thả cái comment hóng hớt, ai ngờ ngoằng phát thấy ông Dũng tạo nhóm với Vietnix Trung luôn.

Ae Vietnix thì siêu tốc độ, lập tức lấy thông tin vào việc, không hỏi han lằng nhằng, không kỳ kèo chốt đơn dù lúc đấy cũng đang đêm muộn.
Sáng hôm sau dậy vẫn còn đang lơ ngơ mở điện thoại check tin nhắn thì đã thấy ae Vietnix báo xong việc, trong khi mình vẫn chưa biết có chuyện gì xảy ra @@.

Được cái bấm thử website thì thấy load siêu nhanh, chưa tới một giây là thông tin các thứ hiện hết. Quá phê, thả con ảnh trước sau (hình 2,3) để ace tiện đối chiếu nhé. Thế này thì mình gửi gắm nốt 15 em website còn lại cho team Vietnix thôi chứ không cần nghĩ ngợi gì nữa. 10/10.

Nên là:

  1. Anh chị em muốn có một con website tốc độ load nhanh như tốc độ trở mặt của nyc – Dùng ngay dịch vụ hosting của Vietnix
  2. Anh chị em có website rồi muốn tìm bên hosting uy tín, chuyên nghiệp hỗ trợ không quản ngày đêm – Liên hệ ngay Vietnix Trung
  3. Anh chị em quan tâm đến trải nghiệm khách hàng, từ những cái nhỏ nhất như tăng tốc độ website – Better call Vietnix Trung

Và đừng quên dùng pass “HIEUAI_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting, quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
#SEO #Vietnix #hieuai

Website
Trước khi tối ưu
Sau khi tối ưu

Chỉ số tăng trưởng

Điểm Desktop

100 (+43)

Điểm Mobile

100 (+74)

Core Web Vitals

Passed

Lĩnh vực

AI