mariadb 10.6
离线下载
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
add-apt-repository 'deb [arch=amd64] http://mirrors.aliyun.com/mariadb/repo/10.6/ubuntu jammy main'
apt-get --download-only install mariadb-server mariadb-client galera-4 rsync socat python3-pymysql
mkdir /controller/mariadb-glaera
mv /var/cache/apt/archives/*.deb /controller/mariadb-glaera/
dpkg -i /controller/mariadb-glaera/*.deb
在三个控制节点操作
vim /etc/mysql/my.cnf
[client]
default-character-set = utf8mb4
[mysqld]
bind-address = ip1
binlog_format = ROW
default_storage_engine = InnoDB
innodb_autoinc_lock_mode = 2
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
max_connections = 4096
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
wsrep_on = ON
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://ip1,ip2,ip3"
wsrep_cluster_name = openstack_galera
wsrep_node_address = ip1
wsrep_node_name = controller1
wsrep_sst_method = rsync
wsrep_sst_auth = "root:MYSQL_ROOT_PASS"
symbolic-links=0
[galera]
chown -R mysql:mysql /var/lib/mysql
chmod 755 /var/lib/mysql
在第一个控制节点操作
galera_new_cluster
在第二、三个控制节点操作
systemctl start mariadb
在三个控制节点操作
systemctl enable mariadb
mysql_secure_installation
mysql -uroot -p
SHOW STATUS LIKE 'wsrep_cluster_size';
SHOW STATUS LIKE 'wsrep_cluster_status';
SHOW STATUS LIKE 'wsrep_ready';
CREATE USER 'haproxy'@'ip1' IDENTIFIED BY 'HAPROXY_DBPASS';
CREATE USER 'haproxy'@'ip2' IDENTIFIED BY 'HAPROXY_DBPASS';
CREATE USER 'haproxy'@'ip3' IDENTIFIED BY 'HAPROXY_DBPASS';
GRANT USAGE ON *.* TO 'haproxy'@'ip1';
GRANT USAGE ON *.* TO 'haproxy'@'ip2';
GRANT USAGE ON *.* TO 'haproxy'@'ip3';
GRANT PROCESS ON *.* TO 'haproxy'@'ip1';
GRANT PROCESS ON *.* TO 'haproxy'@'ip2';
GRANT PROCESS ON *.* TO 'haproxy'@'ip3';
FLUSH PRIVILEGES;
rabbitmq 3.13
离线下载
rmq官方
apt install --download-only rabbitmq-server=3.11.28-1
mkdir /controller/rmq
mv /var/cache/apt/archives/*.deb /controller/rmq/
dpkg -i /controller/rmq/*.deb
在三个控制节点操作
vim /etc/rabbitmq/rabbitmq-env.conf
NODE_IP_ADDRESS=ip1
echo 'Os#123' | tee /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
在一个控制节点操作
rabbitmq-plugins enable rabbitmq_management
rabbitmqctl add_user OSadmin OSADMIN_PASS
rabbitmqctl set_permissions OSadmin ".*" ".*" ".*"
rabbitmqctl set_user_tags OSadmin administrator
rabbitmqctl add_user nova NOVA_PASS
rabbitmqctl set_permissions nova ".*" ".*" ".*"
rabbitmqctl add_user neutron NEUTRON_PASS
rabbitmqctl set_permissions neutron ".*" ".*" ".*"
rabbitmqctl add_user cinder CINDER_PASS
rabbitmqctl set_permissions cinder ".*" ".*" ".*"
rabbitmqctl add_user glance GLANCE_PASS
rabbitmqctl set_permissions glance ".*" ".*" ".*"
rabbitmqctl add_user placement PLACEMENT_PASS
rabbitmqctl set_permissions placement ".*" ".*" ".*"
rabbitmqctl add_user horizon HORIZON_PASS
rabbitmqctl set_permissions horizon ".*" ".*" ".*"
rabbitmqctl add_user masakari MASAKARI_PASS
rabbitmqctl set_permissions masakari ".*" ".*" ".*"
在另外两个控制节点操作
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@controller1
rabbitmqctl start_app
rabbitmqctl cluster_status
在第一个控制节点操作
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
memcache客户端分布式
离线下载
apt-get install --download-only memcached python3-memcache
mkdir /controller/memcache
mv /var/cache/apt/archives/*.deb /controller/memcache/
dpkg -i /controller/memcache/*.deb
在三个控制节点操作
vim /etc/memcached.conf
-l ip1
-m 1024
-u memcache
systemctl start memcached && systemctl enable memcached
haproxy
离线下载
apt-get install --download-only haproxy keepalived
mkdir /controller/hk
mv /var/cache/apt/archives/*.deb /controller/hk/
dpkg -i /controller/hk/*.deb
在三个控制节点操作
基础服务
vim /etc/haproxy/haproxy.cfg
global
log /dev/log local0
log /dev/log local1 warning
maxconn 8192
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 60000
timeout server 60000
maxconn 8192
frontend mysql_front
bind <vip>:3306
default_backend mysql_back
backend mysql_back
balance roundrobin
option mysql-check user haproxy
mysql-check query "SHOW STATUS LIKE 'wsrep_local_state';"
mysql-check expect string :4
server controller1 <ip1>:3306 check
server controller2 <ip2>:3306 check
server controller3 <ip3>:3306 check
组件服务
vim /etc/haproxy/haproxy.cfg
frontend keystone_front
bind <vip>:5000
default_backend keystone_back
backend keystone_back
balance roundrobin
mode http
option httpchk GET /v3/
server controller1 <ip1>:5000 check
server controller2 <ip2>:5000 check
server controller3 <ip3>:5000 check
frontend glance_api_front
bind <vip>:9292
default_backend glance_api_back
backend glance_api_back
balance roundrobin
mode http
option httpchk GET /
server controller1 <ip1>:9292 check
server controller2 <ip2>:9292 check
server controller3 <ip3>:9292 check
frontend nova_api_front
bind <vip>:8774
default_backend nova_api_back
backend nova_api_back
balance roundrobin
mode http
option httpchk GET /2.1/
server controller1 <ip1>:8774 check
server controller2 <ip2>:8774 check
server controller3 <ip3>:8774 check
frontend neutron_api_front
bind <vip>:9696
default_backend neutron_api_back
backend neutron_api_back
balance roundrobin
mode http
option httpchk GET /
server controller1 <ip1>:9696 check
server controller2 <ip2>:9696 check
server controller3 <ip3>:9696 check
frontend cinder_api_front
bind <vip>:8776
default_backend cinder_api_back
backend cinder_api_back
balance roundrobin
mode http
option httpchk GET /v3/
server controller1 <ip1>:8776 check
server controller2 <ip2>:8776 check
server controller3 <ip3>:8776 check
frontend placement_api_front
bind <vip>:8778
default_backend placement_api_back
backend placement_api_back
balance roundrobin
mode http
option httpchk GET /
server controller1 <ip1>:8778 check
server controller2 <ip2>:8778 check
server controller3 <ip3>:8778 check
frontend horizon_front
bind <vip>:80
mode http
default_backend horizon_back
backend horizon_back
balance roundrobin
mode http
option httpchk GET /
server controller1 <ip1>:80 check
server controller2 <ip2>:80 check
server controller3 <ip3>:80 check
frontend masakari_api_front
bind <vip>:15868
default_backend masakari_api_back
backend masakari_api_back
balance roundrobin
mode http
option httpchk GET /v1/
server controller1 <ip1>:15868 check
server controller2 <ip2>:15868 check
server controller3 <ip3>:15868 check
其他
vim /etc/haproxy/haproxy.cfg
listen stats
bind ip1:8888
mode http
stats enable
stats hide-version
stats uri /haproxy_stats
stats realm Haproxy\ Statistics
stats auth haproxyOS:Os
stats refresh 120s
stats admin if FALSE
启动
systemctl start haproxy && systemctl enable haproxy
keepalived
在第一个控制节点操作
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface bond0
virtual_router_id 51
priority 110
advert_int 1
authentication {
auth_type PASS
auth_pass Os
}
virtual_ipaddress {
<vip>
}
track_script {
chk_haproxy
}
}
vrrp_script chk_haproxy {
script "systemctl is-active haproxy"
interval 60
weight -15
}
在第二个控制节点操作
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface bond0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass Os
}
virtual_ipaddress {
<vip>
}
track_script {
chk_haproxy
}
}
vrrp_script chk_haproxy {
script "systemctl is-active haproxy"
interval 60
weight -15
}
在第三个控制节点操作
vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP
interface bond0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass Os
}
virtual_ipaddress {
<vip>
}
track_script {
chk_haproxy
}
}
vrrp_script chk_haproxy {
script "systemctl is-active haproxy"
interval 60
weight -15
}
在三个控制节点操作
systemctl start keepalived && systemctl enable keepalived