| 主机 | 服务 | LVS角色 |
|---|---|---|
| vm5(192.168.225.134) | Load balancer | |
| vm2(192.168.225.128) | mysql | real server |
| vm4(192.168.225.131) | mysql | real server |
| vm3(192.168.225.130) | NFS(vm2,vm4) | storage |
[root@vm3 opt]# id mysql
uid=888(mysql) gid=888(mysql) groups=888(mysql)
[root@vm3 mysql_data]# vi /etc/exports
/opt/mysql_data 192.168.225.0/24(rw,all_squash,anonuid=888,anongid=888)
Virtual IP:
设置为192.168.225.200(便于实践,实际上因该为公网地址)
NFS共享存储搭建
[root@vm2 opt]# cat >> /etc/fstab <<EOF
> 192.168.225.130:/opt/mysql_data /opt/mysql_data/data nfs defaults,_netdev 0 0
> EOF
[root@vm2 opt]# mount -a
[root@vm2 opt]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 979M 0 979M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 9.5M 981M 1% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 5.7G 12G 34% /
/dev/sda1 xfs 1014M 137M 878M 14% /boot
tmpfs tmpfs 199M 0 199M 0% /run/user/0
192.168.225.130:/opt/mysql_data nfs4 17G 1.6G 16G 10% /opt/mysql_data/data
[root@vm4 opt]# cat >> /etc/fstab <<EOF
> 192.168.225.130:/opt/mysql_data /opt/mysql_data/data nfs defaults,_netdev 0 0
> EOF
[root@vm4 opt]# mount -a
[root@vm4 opt]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
devtmpfs devtmpfs 963M 0 963M 0% /dev
tmpfs tmpfs 981M 0 981M 0% /dev/shm
tmpfs tmpfs 981M 8.7M 972M 1% /run
tmpfs tmpfs 981M 0 981M 0% /sys/fs/cgroup
/dev/mapper/cl-root xfs 17G 5.9G 12G 35% /
/dev/sda1 ext4 976M 109M 800M 12% /boot
tmpfs tmpfs 197M 0 197M 0% /run/user/0
192.168.225.130:/opt/mysql_data nfs4 17G 1.6G 16G 10% /opt/mysql_data/data
[root@vm2 share]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/mysql_data/data --explicit_defaults_for_timestamp
2020-11-09T06:34:22.191406Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-11-09T06:34:22.470740Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-11-09T06:34:22.560196Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 9a8fa408-2255-11eb-bfc3-000c29461984.
2020-11-09T06:34:22.570801Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed‘ cannot be opened.
2020-11-09T06:34:22.585675Z 1 [Note] A temporary password is generated for root@localhost: MOu-X-84/h*B
[root@vm2 data]# ll
total 110628
-rw-r----- 1 mysql mysql 56 Nov 11 2020 auto.cnf
-rw-r----- 1 mysql mysql 417 Nov 11 2020 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Nov 11 2020 ibdata1
-rw-r----- 1 mysql mysql 50331648 Nov 11 2020 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Nov 11 2020 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 Nov 11 2020 mysql
drwxr-x--- 2 mysql mysql 8192 Nov 11 2020 performance_schema
drwxr-x--- 2 mysql mysql 8192 Nov 11 2020 sys
[root@vm4 mysql_data]# ll data/
total 110628
-rw-r----- 1 mysql mysql 56 Nov 11 17:00 auto.cnf
-rw-r----- 1 mysql mysql 417 Nov 11 17:00 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 Nov 11 17:00 ibdata1
-rw-r----- 1 mysql mysql 50331648 Nov 11 17:00 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Nov 11 17:00 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 Nov 11 17:00 mysql
drwxr-x--- 2 mysql mysql 8192 Nov 11 17:00 performance_schema
drwxr-x--- 2 mysql mysql 8192 Nov 11 17:00 sys
[myqld]
basedir=/usr/local/mysql
datadir=/opt/mysql_data/data
socket=/tmp/mysql.sock
port=3306
pid-file=/tmp/mysql.pid
user=mysql
skip-name-resolve
[root@vm2 data]# service mysqld start
Starting MySQL.. SUCCESS!
[root@vm2 data]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:9000 *:*
LISTEN 0 128 *:111 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 80 [::]:3306 [::]:*
LISTEN 0 128 [::]:111 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
[root@vm2 data]#
[root@vm4 mysql_data]# service mysqld start
Starting MySQL..................................................................................................... ERROR! The server quit without updating PID file (/opt/mysql_data/data/vm4.pid).
2020-11-11T12:09:32.397689Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2020-11-11T12:09:33.400072Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 11
2020-11-11T12:09:33.400137Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
2020-11-11T12:09:33.400151Z 0 [Note] InnoDB: Unable to open the first data file
2020-11-11T12:09:33.401669Z 0 [ERROR] InnoDB: Operating system error number 11 in a file operation.
2020-11-11T12:09:33.401716Z 0 [ERROR] InnoDB: Error number 11 means ‘Resource temporarily unavailable‘
2020-11-11T12:09:33.401732Z 0 [Note] InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html
mysql> grant all privileges on *.* to ‘root‘@‘192.168.43.166‘ identified by ‘123456‘;
Query OK, 0 rows affected, 1 warning (2 min 50.81 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
[root@vm5 ~]# yum -y install ipvsadm
.............
Installed:
ipvsadm-1.31-1.el8.x86_64
Complete!
[root@vm5 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR0=192.168.225.134
NETMASK0=255.255.255.0
GATEWAY0=192.168.225.2
DNS1=192.168.225.2
IPADDR1=192.168.225.200
NETMASK1=255.255.255.0
[root@vm5 ~]# ifdown ens32;ifup ens32
Connection ‘ens32‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@vm5 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:81:38:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.225.134/24 brd 192.168.225.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.225.200/24 brd 192.168.225.255 scope global secondary noprefixroute ens32
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe81:38b9/64 scope link
valid_lft forever preferred_lft forever
[root@vm4 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR0=192.168.225.131
NETMASK0=255.255.225.0
GATEWAY0=192.168.225.2
DNS1=192.168.225.2
NAME=ens32
DEVICE=ens32
ONBOOT=yes
[root@vm4 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
[root@vm4 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR0=192.168.225.131
NETMASK0=255.255.225.0
GATEWAY0=192.168.225.2
DNS1=192.168.225.2
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR1=192.168.225.200
NETMASK1=255.255.255.0
[root@vm4 ~]# ifdown ens33;ifup ens33
Connection ‘ens33‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
[root@vm4 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:da:ad:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.225.131/24 brd 192.168.225.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.225.200/24 brd 192.168.225.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::3d23:8838:5393:f99/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@vm2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
[root@vm2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR0=192.168.225.128
NETMASK0=255.255.225.0
GATEWAY0=192.168.225.2
DNS1=192.168.225.2
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR1=192.168.225.200
NETMASK1=255.255.255.0
[root@vm2 ~]# ifdown ens33;ifup ens33
Device ‘ens33‘ successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@vm2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:46:19:84 brd ff:ff:ff:ff:ff:ff
inet 192.168.225.128/24 brd 192.168.225.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.225.200/24 brd 192.168.225.255 scope global secondary noprefixroute ens33
valid_lft forever preferred_lft forever
[root@vm5 ~]# ipvsadm -A -t 192.168.225.200:3306 -s rr
[root@vm5 ~]# ipvsadm -a -t 192.168.225.200:3306 -r 192.168.225.128:3306 -g
[root@vm5 ~]# ipvsadm -a -t 192.168.225.200:3306 -r 192.168.225.131:3306 -g
[root@vm5 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.225.200:3306 rr
-> 192.168.225.128:3306 Route 1 0 0
-> 192.168.225.131:3306 Route 1 0 0
[root@vm5 ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@vm5 ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.225.200:3306 -s rr
-a -t 192.168.225.200:3306 -r 192.168.225.128:3306 -g -w 1
-a -t 192.168.225.200:3306 -r 192.168.225.131:3306 -g -w 1
[root@vm5 ~]#
| 主机 | 服务 | LVS角色 |
|---|---|---|
| vm5(192.168.225.134) | Load balancer | |
| vm2(192.168.225.128) | httpd | real server |
| vm4(192.168.225.131) | httpd | real server |
[root@vm2 ~]# yum -y install httpd
[root@vm2 ssl]# yum -y install mod_ssl
[root@vm2 ~]# systemctl start httpd
[root@vm2 ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 [::]:80 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
[root@vm2 wisan]# pwd
/var/www/html/wisan
[root@vm2 wisan]# cat index.html
rs1
[root@vm2 wisan]# vi /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName www.wisan.com
DocumentRoot "/var/www/html/wisan"
ErrorLog "/var/log/httpd/error_log"
CustomLog "/var/log/httpd/access_log" common
</VirtualHost>
~
过程略
[root@vm2 ssl]# pwd
/etc/httpd/ssl
[root@vm2 ssl]# ls
httpd.crt httpd.csr httpd.key
[root@vm5 ~]# yum -y install ipvsadm
[root@vm5 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
BOOTPROTO=static
IPADDR0=192.168.225.134 ##DIP
NETMASK0=255.255.225.0
GATEWAY0=192.168.225.2
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR1=192.168.225.200 ##VIP
NETMASK1=255.255.255.0
[root@vm5 ~]# ifdown ens32;ifup ens32
Connection ‘ens32‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
[root@vm5 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:81:38:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.225.134/24 brd 192.168.225.255 scope global noprefixroute ens32
valid_lft forever preferred_lft forever
inet 192.168.225.200/24 brd 192.168.225.255 scope global secondary noprefixroute ens32
valid_lft forever preferred_lft forever
[root@vm2 ssl]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.225.128
NETMASK=255.255.255.0
GATEWAY=192.168.225.134
[root@vm2 ssl]# ifdown ens33;ifup ens33
Device ‘ens33‘ successfully disconnected.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
[root@vm2 ssl]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:46:19:84 brd ff:ff:ff:ff:ff:ff
inet 192.168.225.128/24 brd 192.168.225.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
[root@vm2 ssl]# route -nv
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.225.134 0.0.0.0 UG 100 0 0 ens33
192.168.225.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[root@vm4 ssl]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.225.131
NETMASK=255.255.255.0
GATEWAY=192.168.225.134
[root@vm4 ssl]# ifdown ens33;ifup ens33
Connection ‘ens33‘ successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@vm4 ssl]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:da:ad:a2 brd ff:ff:ff:ff:ff:ff
inet 192.168.225.131/24 brd 192.168.225.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
[root@vm4 ssl]# route -nv
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.225.134 0.0.0.0 UG 100 0 0 ens33
192.168.225.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
[root@vm5 ~]# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@vm5 ~]# sysctl -p /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@vm5 ~]# ipvsadm -A -t 192.168.225.200:80 -s rr
[root@vm5 ~]# ipvsadm -a -t 192.168.225.200:80 -r 192.168.225.128:80 -m
[root@vm5 ~]# ipvsadm -a -t 192.168.225.200:80 -r 192.168.225.131:80 -m
[root@vm5 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.225.200:80 rr
-> 192.168.225.128:80 Masq 1 0 0
-> 192.168.225.131:80 Masq 1 0 0
[root@vm5 ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@vm5 ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.225.200:80 -s rr
-a -t 192.168.225.200:80 -r 192.168.225.128:80 -m -w 1
-a -t 192.168.225.200:80 -r 192.168.225.131:80 -m -w 1
[root@vm5 ~]# ipvsadm -A -t 192.168.225.200:443 -s rr
[root@vm5 ~]# ipvsadm -a -t 192.168.225.200:443 -r 192.168.225.131:443 -m
[root@vm5 ~]# ipvsadm -a -t 192.168.225.200:443 -r 192.168.225.128:443 -m
[root@vm5 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.225.200:80 rr
-> 192.168.225.128:80 Masq 1 0 0
-> 192.168.225.131:80 Masq 1 0 0
TCP 192.168.225.200:443 rr
-> 192.168.225.128:443 Masq 1 0 0
-> 192.168.225.131:443 Masq 1 0 0
[root@vm5 ~]# ipvsadm -Sn > /etc/sysconfig/ipvsadm
[root@vm5 ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.225.200:80 -s rr
-a -t 192.168.225.200:80 -r 192.168.225.128:80 -m -w 1
-a -t 192.168.225.200:80 -r 192.168.225.131:80 -m -w 1
-A -t 192.168.225.200:443 -s rr
-a -t 192.168.225.200:443 -r 192.168.225.128:443 -m -w 1
-a -t 192.168.225.200:443 -r 192.168.225.131:443 -m -w 1
原文:https://www.cnblogs.com/fyjpeng/p/13967691.html