部署规划
这次作业是OceanBase 集群三节点部署方法,通过中控机直接远程登录到 OceanBase 节点上部署启动 observer
和 obproxy
进程。
由于手上正好有7台物理机,所以在这个作业中会使用OBD直接部署为2:2:2架构的OceanBase集群。
- 机器信息如下:
机器类型 | 主机信息 |
---|---|
IP | 10.144.2.112,10.144.2.111,10.144.2.110,10.144.2.109, 10.144.2.108,10.144.2.107,10.144.2.107 |
网卡名 | bond0 |
OS | CentOS Linux release 7.9.2009 (Core) |
CPU | 64 |
内存 | 256G,可用230G+ |
磁盘1 | /data/1 |
磁盘2 | data/2 |
- 机器划分如下:
角色 | 机器 | 备注 |
---|---|---|
OBD | 10.144.2.112 | 中控机,自动化安装部署软件 |
OBSERVER | 10.144.2.111 | OceanBase数据库,zone1 |
10.144.2.110 | OceanBase数据库,zone2 | |
10.144.2.109 | OceanBase数据库,zone3 | |
10.144.2.108 | OceanBase数据库,zone1 | |
10.144.2.107 | OceanBase数据库,zone2 | |
10.144.2.106 | OceanBase数据库,zone3 | |
OBPROXY | 10.144.2.111 | OceanBase访问反向代理 |
10.144.2.110 | OceanBase访问反向代理 | |
10.144.2.109 | OceanBase访问反向代理 | |
10.144.2.108 | OceanBase访问反向代理 | |
10.144.2.107 | OceanBase访问反向代理 | |
10.144.2.106 | OceanBase访问反向代理 | |
OBCLIENT | 10.144.2.112 | OceanBase命令行客户端 |
环境设置
内核参数修改
修改配置文件:vi /etc/sysctl.conf
添加以下内容
net.core.somaxconn = 2048
net.core.netdev_max_backlog = 10000
net.core.rmem_default = 16777216
net.core.wmem_default = 16777216
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.ip_local_port_range = 3500 65535
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_slow_start_after_idle=0
vm.swappiness = 0
vm.min_free_kbytes = 2097152
vm.max_map_count=655360
fs.aio-max-nr=1048576
让配置生效
sysctl -p
会话变量修改
OceanBase 数据库的进程涉及的限制包括线程最大栈空间大小(Stack)、最大文件句柄数(Open Files)和 core 文件大小 (Core File Size)。
修改配置文件:vi /etc/security/limits.conf
- 在全局级别修改。注意修改后,已经登录的会话需要退出重登录才生效。
将会话级别的最大栈空间大小设置为 unlimited
,最大文件句柄数设置为 655350,Core 文件大小设置为 unlimited
。 修改 /etc/security/limits.conf
配置文件,如果已有设置值低于这个设置值
* soft nofile 655360
* hard nofile 655360
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
* soft stack unlimited
* hard stack unlimited
查看配置方法。退出当前会话,重新登录。执行以下命令,查看配置是否生效:
ulimit -a
关闭 SELinux
修改 SELinux 配置文件中的 SELINUX
选项。 注意:必须使用注释中的三个值之一。如果写错了,机器重启后操作系统会报错起不来,那时候就只能进入单用户模式修改了。
修改配置文件:vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
配置文件修改后只会重启主机后生效,还需要使用下面命令立即生效。
setenforce 0
关闭防火墙
查看防火墙状态
systemctl status firewalld
如果是 inactive
那就不用管。如果是 active
,那就永久关闭
systemctl disable firewalld
systemctl stop firewalld
systemctl status firewalld
判断是否使用 ntpd
同步时间。
systemctl status ntpd
Unit ntpd.service could not be found.
如果提示上面这个信息,表示没有使用 ntpd
。 如果提示有 ntpd 服务,就卸载 ntpd
软件,检查chrony
服务。
chrony
服务检查
-
查看时间同步活动
chronyc activity
-
查看时间服务器
chronyc sources
-
查看同步状态
chronyc sources -v
-
校准时间服务器:
chronyc tracking
安装chrony服务
如果没有安装,可以采用 YUM 安装方法。您也可以下载相应的 RPM 包安装。
我的服务器已经安装,以下安装方法参考社区教程,仅供参考:
yum -y install chrony
chrony
配置说明
chrony
服务守护进程名是 chronyd
,chronyc
是用来监控 chronyd
性能和配置参数的命令行工具。 chrony
的主配置文件: /etc/chrony.conf
。配置方法如下:
vi /etc/chrony.conf
# server 后面跟时间同步服务器
# 使用pool.ntp.org 项目中的公共服务器。按 server 配置,理论上您想添加多少时间服务器都可以。
# 或者使用 阿里云的 ntp 服务器
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
# 如果是测试环境,没有时间同步服务器,那就选取一台配置为时间同步服务器。
# 如果选中的是本机,则取消下面 server 注释
#server 127.127.1.0
# 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
driftfile /var/lib/chrony/drift
# chronyd 根据需求减慢或加速时间调整,
# 在某些情况下系统时钟可能漂移过快,导致时间调整用时过长。
# 该指令强制 chronyd 调整时期,大于某个阀值时步进调整系统时钟。
# 只有在因 chronyd 启动时间超过指定的限制时(可使用负值来禁用限制)没有更多时钟更新时才生效。
makestep 1.0 3
# 将启用一个内核模式,在该模式中,系统时间每11分钟会拷贝到实时时钟(RTC)。
rtcsync
# Enable hardware timestamping on all interfaces that support it.
# 通过使用hwtimestamp指令启用硬件时间戳
#hwtimestamp eth0
#hwtimestamp eth1
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# 指定一台主机、子网,或者网络以允许或拒绝NTP连接到扮演时钟服务器的机器
#allow 192.168.0.0/16
#deny 192.168/16
# 即使没有同步到时间源,也要服务时间
local stratum 10
# 指定包含NTP验证密钥的文件。
#keyfile /etc/chrony.keys
# 指定日志文件的目录。
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
最简单的配置文件如下:
server 127.127.1.0
allow 10.144.0.0/16
local stratum 10
配置安装用户
- 添加普通用户
groupadd -g 2000 admin
useradd -u 2000 -g 2000 admin
-
passwd admin
输入密码即可
-
添加admin的sudo权限
[root@localhost ~]# visudo
在以下内容后添加内容:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
添加以下内容:
admin ALL=(ALL) ALL
初始化目录
查看磁盘分区情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
sdb 8:16 0 1.8T 0 disk
sdc 8:32 0 446.1G 0 disk
├─sdc1 8:33 0 1G 0 part /boot/efi
├─sdc2 8:34 0 1G 0 part /boot
└─sdc3 8:35 0 444.1G 0 part
├─vg00-lvroot 253:0 0 100G 0 lvm /
└─vg00-lvswap 253:1 0 16G 0 lvm [SWAP]
loop0 7:0 0 387M 0 loop /usr/hxm/loadrunner
查看磁盘分区和挂载情况
[root@localhost ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda LVM2_member 4bEcx7-m6bx-mL41-vKEO-DvOC-zEgE-H32Add
sdb
sdc
├─sdc1 vfat 0320-6ED4 /boot/efi
├─sdc2 xfs 93739afe-f19e-436e-aefb-be9522931fdf /boot
└─sdc3 LVM2_member 22LfZ1-VwqX-MMKK-97L0-1l0T-iDlG-YPXHZ5
├─vg00-lvroot xfs lvroot c2918725-45ec-4415-a7c1-d10598630178 /
└─vg00-lvswap swap lvswap b9ce8c9c-03b2-4ceb-9044-945493566db5 [SWAP]
loop0 udf T7330-15010 2010-08-25-10-57-00-0 /usr/hxm/loadrunner
查看磁盘使用情况
[root@localhost ~]# df -hl
Filesystem Size Used Avail Use% Mounted on
devtmpfs 126G 0 126G 0% /dev
tmpfs 126G 4.0K 126G 1% /dev/shm
tmpfs 126G 116M 126G 1% /run
tmpfs 126G 0 126G 0% /sys/fs/cgroup
/dev/mapper/vg00-lvroot 100G 43G 58G 43% /
/dev/sdc2 1014M 227M 788M 23% /boot
/dev/sdc1 1022M 12M 1011M 2% /boot/efi
tmpfs 26G 12K 26G 1% /run/user/42
tmpfs 26G 0 26G 0% /run/user/0
/dev/loop0 386M 386M 0 100% /usr/hxm/loadrunner
查看系统支持的分区类型
mkfs然后敲两下tab键查看我们的系统支持的分区类型
[root@localhost ~]# mkfs
mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.fat mkfs.minix mkfs.msdos mkfs.vfat mkfs.xfs
格式化分区
[root@localhost ~]# mkfs -t ext4 /dev/sda
mke2fs 1.42.9 (28-Dec-2013)
/dev/sda is entire device, not just one partition!
Proceed anyway? (y,n) y
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block siz