需准备3台相同配置的CentOS7.9服务器(2核4G、50G磁盘,局域网互通或公网可访问),所有节点网络延迟≤10ms,时间误差≤1s。
所有节点执行以下命令,完成依赖安装、安全策略配置:
``` 更新系统并安装核心依赖 sudo yum update -y && sudo yum install -y epel-release wget curl ntp python3-pip 启用时间同步服务 sudo systemctl start ntpd && sudo systemctl enable ntpd 关闭SELinux(避免权限冲突) sudo setenforce 0 && sudo sed -i 's/^SELINUX=./SELINUX=disabled/' /etc/selinux/config 关闭防火墙(内网环境直接关闭,公网需开放8000、3306端口) sudo systemctl stop firewalld && sudo systemctl disable firewalld 关闭Swap(提升服务性能) sudo swapoff -a && sudo sed -i '/ swap / s/^//' /etc/fstab ```将3台节点标记为:db-node1(192.168.1.10)、db-node2(192.168.1.11)、db-node3(192.168.1.12)。
执行以下命令添加阿里云仓库并安装:
``` 添加MariaDB 10.5 Galera仓库 cat << EOF | sudo tee /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/ gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB gpgcheck = 1 EOF 安装Galera集群 sudo yum install -y MariaDB-server MariaDB-client galera ```编辑Galera配置文件:
``` sudo vi /etc/my.cnf.d/galera.cnf ```写入完整配置:
``` [mysqld] binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 bind-address=0.0.0.0 Galera集群核心配置 wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_name="archive_cluster" wsrep_cluster_address="gcomm://192.168.1.10,192.168.1.11,192.168.1.12" wsrep_node_address="192.168.1.10" wsrep_node_name="db-node1" ```保存后启动集群并初始化数据库密码:
``` sudo systemctl start mariadb 按提示设置root密码,记牢该密码 sudo mysql_secure_installation ```仅需修改上述配置中的wsrep_node_address和wsrep_node_name(分别改为对应节点IP/名称),其余配置不变。启动时直接加入集群:
``` sudo systemctl start mariadb ```在任意节点执行,返回结果为3说明集群正常:
``` mysql -u root -p -e "show status like 'wsrep_cluster_size';" ```将2台节点标记为:app-node1(192.168.1.20)、app-node2(192.168.1.21),采用Seafile社区版实现集群部署。

执行安装命令,指定数据库集群地址,自定义管理员账号密码:
``` sudo seatool install --type=community --version=9.0.7 --prefix=/opt/seafile \ --db-host=192.168.1.10 --db-port=3306 --db-user=root --db-pass=你的数据库密码 \ --db-name=seafile --admin-email=admin@test.com --admin-password=Test@1234 \ --mysql-use-proxy=false ```修改配置开启集群模式:
``` sudo vi /opt/seafile/conf/seafile.conf ```添加内容:
``` [cluster] enabled = true ```启动主节点服务:
``` sudo /opt/seafile/seafile-server-9.0.7/setup-seafile.sh start ```执行安装命令,添加主节点标识:
``` sudo seatool install --type=community --version=9.0.7 --prefix=/opt/seafile \ --db-host=192.168.1.10 --db-port=3306 --db-user=root --db-pass=你的数据库密码 \ --db-name=seafile --admin-email=admin@test.com --admin-password=Test@1234 \ --mysql-use-proxy=false --cluster-node=app-node1 ```启动从节点服务:
``` sudo /opt/seafile/seafile-server-9.0.7/setup-seafile.sh start ```访问http://app-node1的IP:8000,输入管理员账号密码,进入「系统管理→集群管理」,显示2个节点说明部署成功。
1. 数据库节点连接失败:检查所有节点防火墙是否关闭、IP是否无误,wsrep_cluster_address的节点间无空格;
2. Seafile从节点无法加入:确认主节点已启动、数据库密码正确,所有节点时间同步误差≤5s;
3. 服务端口无法访问:公网环境需开放8000、3306端口至对应节点IP。