当前位置:首页 > 存储 > CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用

存储1年前 (2020-01-17)

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用

分布式文件系统是一种允许文件通过网络在多台主机上分享的文件系统,可让多台主机上的多用户分享文件和存储空间。单独使用Samba挂载gluster volume无法实现高可用,需要使用CTDB和Samba

每台服务器加1块1G的nvme磁盘,将合并做成4G的分区提供SMB服务


拓扑:

服务器1 fs1 192.168.101.10

服务器2 fs2 192.168.101.11

服务器3 fs3 192.168.101.12

服务器4 fs4 192.168.101.13

客户端Win7 192.168.101.20


GlusterFS几种卷模式说明

1.默认模式,既DHT, 也叫分布卷: 将文件已hash算法随机分布到一台服务器节点中存储
gluster volume create test-volume server1:/exp1 server2:/exp2

2.复制模式,既AFR, 创建volume时带replica X数量,将文件复制到replica X个节点中
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2

3.条带模式,既Striped, 创建volume时带stripe X数量,将文件切割成数据块,分别存储到stripe X个节点中 (类似raid 0)
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2

4.分布式条带模式,最少需要4台服务器才能创建。创建volume时stripe 2 server=4个节点,是DHT与Striped的组合型
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

5.分布式复制模式, 最少需要4台服务器才能创建。创建volume时replica 2 server=4个节点,是DHT与AFR的组合型
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

6.条带复制卷模式, 最少需要4台服务器才能创建。创建volume时stripe 2 replica 2 server=4个节点,是Striped与AFR的组合型
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

7.三种模式混合, 至少需要8台服务器才能创建。创建volume时stripe 2 replica 2 , 每4个节点组成一个组。
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


系统设置

nmtui修改完ip后执行nmcli con reload && nmcli networking off && nmcli networking on

#节点1
systemctl disable firewalld && systemctl stop firewalld
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config  && setenforce 0
hostnamectl --static set-hostname fs1    
echo "192.168.101.10 fs1" >> /etc/hosts
echo "192.168.101.11 fs2" >> /etc/hosts
echo "192.168.101.12 fs3" >> /etc/hosts
echo "192.168.101.13 fs4" >> /etc/hosts

#节点2
systemctl disable firewalld && systemctl stop firewalld
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config  && setenforce 0
hostnamectl --static set-hostname fs2    
echo "192.168.101.10 fs1" >> /etc/hosts
echo "192.168.101.11 fs2" >> /etc/hosts
echo "192.168.101.12 fs3" >> /etc/hosts
echo "192.168.101.13 fs4" >> /etc/hosts

#节点3
systemctl disable firewalld && systemctl stop firewalld
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config  && setenforce 0
hostnamectl --static set-hostname fs3   
echo "192.168.101.10 fs1" >> /etc/hosts
echo "192.168.101.11 fs2" >> /etc/hosts
echo "192.168.101.12 fs3" >> /etc/hosts
echo "192.168.101.13 fs4" >> /etc/hosts

#节点4
systemctl disable firewalld && systemctl stop firewalld
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config  && setenforce 0
hostnamectl --static set-hostname fs4   
echo "192.168.101.10 fs1" >> /etc/hosts
echo "192.168.101.11 fs2" >> /etc/hosts
echo "192.168.101.12 fs3" >> /etc/hosts
echo "192.168.101.13 fs4" >> /etc/hosts


挂载新盘 

#所有节点
#创建成LVM
pvcreate /dev/nvme0n2
vgcreate vg_gluster /dev/nvme0n2
lvcreate -l100%VG -n lv_gluster vg_gluster
mkfs.xfs /dev/vg_gluster/lv_gluster

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用

#挂载新目录
mkdir -p /gluster 
mkdir -p /gluster/brick
echo '/dev/vg_gluster/lv_gluster   /gluster  xfs defaults 0 0' >> /etc/fstab
mount -a && mount
mount -l | grep gluster

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


时间同步

#所有节点
dnf -y install chrony
systemctl enable --now chronyd
timedatectl set-ntp true
timedatectl set-timezone Asia/Shanghai


安装GlusterFS

#CentOS8
dnf -y install epel-release
wget https://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-rhel8.repo -P /etc/yum.repos.d/
dnf -y install dnf-utils
dnf --enablerepo=PowerTools -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl enable glusterd.service && systemctl start glusterd.service
gluster --version

#CentOS7
yum search centos-release-gluster
yum install -y centos-release-gluster7.noarch
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
gluster --version
systemctl start glusterd
systemctl enable glusterd

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


配置GlusterFS

#将节点2、3加入集群
#节点1执行
gluster peer probe fs2
gluster peer probe fs3
gluster peer probe fs4
gluster peer status
#若要删除节点gluster peer detach fs2

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


创建卷

#节点1执行
#新版本中stripe条带卷参数已经废弃
#CentOS8
gluster volume create smb_volume tansport tcp fs1:/gluster/brick fs2:/gluster/brick fs3:/gluster/brick fs4:/gluster/brick
gluster volume info
#CentOS7
gluster volume create smb_volume fs1:/gluster/brick fs2:/gluster/brick fs3:/gluster/brick fs4:/gluster/brick

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


激活卷

gluster volume start smb_volume

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


将卷挂载出来才可使用

#节点1
mkdir -p /storage
mount -t glusterfs fs1:/smb_volume /storage
#节点2
mkdir -p /storage
mount -t glusterfs fs2:/smb_volume /storage
#节点3
mkdir -p /storage
mount -t glusterfs fs3:/smb_volume /storage
节点4
mkdir -p /storage
mount -t glusterfs fs4:/smb_volume /storage

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


查看glusterfs的pool

gluster volume list
gluster pool list

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


如果需要删除卷

gluster volume stop smb_volume
gluster volume delete smb_volume


安装SMB和ctdb

#所有节点
yum install -y ctdb samba samba-common samba-winbind-clients


配置SMB

#节点1
#/storage为后端集群存储系统的挂载点,/storage/public为用户最后通过Samba访问到的目录
systemctl stop smb.service
systemctl disable smb.service

mkdir -p /storage/ctdb
mkdir -p /storage/public
chmod 777 /storage/public

cp /etc/samba/smb.conf /storage/ctdb/smb.conf
vim /storage/ctdb/smb.conf
改为
workgroup = WORKGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
security = user
passdb backend = tdbsam
clustering = yes
private dir = /storage/ctdb
ctdbd socket = /var/run/ctdb/ctdbd.socket

[share]
comment = GlusterFS and CTDB based share
path = /storage/public
public = yes
guest ok = yes
writeable = yes
read only = no
browsable = yes
kernel share modes = no
create mask = 0775

执行testparm测试配置


配置ctdb

#所有节点
mkdir /var/lib/ctdb/{persistent,volatile,state}
mkdir -p /etc/ctdb/events/legacy

#节点1
vim /storage/ctdb/ctdb.conf
添加
CTDB_RECOVERY_LOCK=/storage/ctdb/lockfile
CTDB_NODES=/storage/ctdb/nodes
CTDB_PUBLIC_ADDRESSES=/storage/ctdb/public_addresses
CTDB_MANAGES_SAMBA=yes
CTDB_MAX_OPEN_FILES=10000
CTDB_LOGGING=file:/var/log/log.ctdb
CTDB_DEBUGLEVEL=ERR
CTDB_SET_TDBMutexEnabled=0

#配置集群节点的IP地址
vim /storage/ctdb/nodes
添加
192.168.101.10 
192.168.101.11 
192.168.101.12 
192.168.101.13

#配置提供给客户访问的虚拟地址
vim /storage/ctdb/public_addresses
添加
192.168.101.110/24 ens160

创建链接符号
ln -s /storage/ctdb/ /etc/ctdb/
ln -s /storage/ctdb/public_addresses /etc/ctdb/public_addresses
ln -s /storage/ctdb/nodes /etc/ctdb/nodes
ln -s /storage/ctdb/smb.conf /etc/samba/smb.conf

#设置自启
systemctl enable ctdb --now
systemctl start ctdb
ctdb status

CentOS8.1 部署GlusterFS使用CTDB和Samba实现高可用


#tail -f /var/log/log.ctdb
#解决ctdb-recoverd[]: Assigned IP not on an interface错误
chmod +x /etc/ctdb/functions

#无法调用开启samba
vim/etc/ctdb/event.d/50.samba
改为
 # Use redhat style as default:
                CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
                CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}


本站所有文章均可随意转载,转载时请保留原文链接及作者。

本文链接:https://www.vos.cn/storage/388.html

相关文章

威联通QNAP TS-1232XU-RP设置iSCSI

威联通QNAP TS-1232XU-RP设置iSCSI

威联通设置iSCSI也是先创建目标,然后创建LUN,再将LUN映射给创建的目标即可存储与快照总管--iSCSI--iSCSI存储,弹出向导下一步输入iSCSI目标名称CHAP配置可留空应用存储与快照总...

CentOS7 存储LUN对LVM分区扩容

CentOS7 存储LUN对LVM分区扩容

服务器一个分区500G,在运行一段时间数据库后容量不够用,需要扩容到2T首先在存储中新划分出1个1.5T的新LUN并映射给需要扩容的服务器上,然后重启服务器如果不重启,可以使用命令扫盘ls ...

EterneCluster-DN 双机热备共享存储

EterneCluster-DN 双机热备共享存储

两台服务器业务地址172.16.2.x网段,心跳2.2.2.x网段,从存储上映射一个LUN到两台windows2016上,安装EterneCluster-DN双机热备软件,做共享热备EterneClu...

CentOS7.6 安装ZFS并创建Raid

CentOS7.6 安装ZFS并创建Raid

ZFS是一个128位的文件系统,支持逻辑卷,Raid,快照和其他高级文件系统功能。在linux下zfs的模块有两种加载到内核的方式dkms和kabi。它们区别在于如果安装了基于dkms的zfs模块,以...

Dell Storage SC5020配置SNMP

Dell Storage SC5020配置SNMP

硬件--SC5020--编辑设置SNMP版本选择v1/v2c,团体名为public,创建一个SNMP陷阱,陷阱目标为SNMP服务器地址,字符串public运行SNMP下载https://www.pae...

N8500实验 集群NAS文件共享

N8500实验 集群NAS文件共享

【实验需求】数据中心有一台N8500设备,一台S2600T V2设备,用这两个设备搭建一个NAS文件共享中心,需要对N8500设备进行初始化,配置I/O fencing,另外再在S2600T V2上分...