以下有免费的4090云主机提供ubuntu22.04系统的其他入门实践操作
地址:星宇科技 | GPU服务器 高性能云主机 云服务器-登录
相关兑换码星宇社区---4090算力卡免费体验、共享开发社区-CSDN博客
兑换码要是过期了,可以私信我获取最新兑换码!!!
之所以推荐给大家使用,是因为上面的云主机目前是免费使用的,不需要大家再去安装虚拟机,部署虚拟机,环境都搭配好了,非常适合新手入门,减少搭建的时间,把时间都用在实践上。
概述
GlusterFS 是一个开源的分布式文件系统,用于将多台服务器的存储空间聚合成一个统一的存储池。它支持动态扩展、高可用性和多种访问协议(如 FUSE、NFS、SMB),适合云存储、媒体存储和大数据场景。本文档指导你完成 GlusterFS 的安装、配置、创建分布式卷和分布式复制卷,并验证存储池。
实验环境
- 节点:4 台服务器
-
node1
: 192.168.1.101
-
node2
: 192.168.1.102
-
node3
: 192.168.1.103
-
node4
: 192.168.1.104
- 操作系统:Ubuntu 20.04 或 CentOS 8
- 存储:每台服务器提供 500GB 磁盘,挂载点为
/data/brick1
- 网络:千兆以太网,确保节点间可互相访问
- 目标:
-
- 创建分布式卷
myvolume
,容量 2TB(4 × 500GB)
- 创建分布式卷
-
- 创建分布式复制卷
myvolume-replica
,容量 1TB(4 × 500GB ÷ 2)
- 创建分布式复制卷
前置要求
- 确保每台节点安装了 Linux(推荐 Ubuntu 或 CentOS)。
- 节点间网络连通,检查:
ping 192.168.1.102 # 从 node1 测试
- 每台节点配置好磁盘分区,格式化为 XFS 或 EXT4,挂载到
/data/brick1
:
mkfs.xfs /dev/sdX
mkdir -p /data
mount /dev/sdX /data
mkdir /data/brick1
- 开放 GlusterFS 端口(24007 用于
glusterd
,49152 起用于 brick):
# Ubuntu
ufw allow 24007
ufw allow 49152:49251/tcp
# CentOS
firewall-cmd --add-port=24007/tcp --permanent
firewall-cmd --add-port=49152-49251/tcp --permanent
firewall-cmd --reload
步骤 1:安装 GlusterFS
在所有 4 个节点(node1
到 node4
)上安装 GlusterFS。
Ubuntu
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:gluster/glusterfs-10
sudo apt-get update
sudo apt-get install -y glusterfs-server
CentOS
sudo yum install -y centos-release-gluster
sudo yum install -y glusterfs-server
启动并启用 glusterd
服务:
sudo systemctl start glusterd
sudo systemctl enable glusterd
sudo systemctl status glusterd
步骤 2:构建 GlusterFS 集群
从 node1
将其他节点加入信任池,组成集群。
- 添加节点:
gluster peer probe 192.168.1.102
gluster peer probe 192.168.1.103
gluster peer probe 192.168.1.104
- 检查集群状态:
gluster peer status
输出示例:
Number of Peers: 3
Hostname: 192.168.1.102
State: Peer in Cluster (Connected)
Hostname: 192.168.1.103
State: Peer in Cluster (Connected)
Hostname: 192.168.1.104
State: Peer in Cluster (Connected)
-
- 确保所有节点状态为
Connected
。
- 确保所有节点状态为
步骤 3:创建分布式卷
分布式卷将 4 个节点的存储空间相加,容量为 2TB。
- 创建卷:
gluster volume create myvolume \
192.168.1.101:/data/brick1 \
192.168.1.102:/data/brick1 \
192.168.1.103:/data/brick1 \
192.168.1.104:/data/brick1
- 启动卷:
gluster volume start myvolume
- 检查卷信息:
gluster volume info myvolume
输出示例:
Volume Name: myvolume
Type: Distribute
Status: Started
Number of Bricks: 4
Bricks:
Brick1: 192.168.1.101:/data/brick1
Brick2: 192.168.1.102:/data/brick1
Brick3: 192.168.1.103:/data/brick1
Brick4: 192.168.1.104:/data/brick1
步骤 4:创建分布式复制卷(可选)
分布式复制卷(replica 2
)提供冗余,容量为 1TB。brick 分为 2 个复制组:(node1
, node2
) 和 (node3
, node4
)。
- 创建卷:
gluster volume create myvolume-replica replica 2 \
192.168.1.101:/data/brick1 \
192.168.1.102:/data/brick1 \
192.168.1.103:/data/brick1 \
192.168.1.104:/data/brick1
- 启动卷:
gluster volume start myvolume-replica
- 检查卷信息:
gluster volume info myvolume-replica
输出示例:
Volume Name: myvolume-replica
Type: Distributed-Replicate
Status: Started
Number of Bricks: 2 x 2 = 4
Bricks:
Brick1: 192.168.1.101:/data/brick1
Brick2: 192.168.1.102:/data/brick1
Brick3: 192.168.1.103:/data/brick1
Brick4: 192.168.1.104:/data/brick1
步骤 5:挂载和使用卷
在客户端(可以是集群节点或外部服务器)挂载卷,验证存储池。
- 安装客户端(如果需要):
# Ubuntu
sudo apt-get install -y glusterfs-client
# CentOS
sudo yum install -y glusterfs-client
- 挂载分布式卷:
mkdir -p /mnt/gluster
mount -t glusterfs 192.168.1.101:/myvolume /mnt/gluster
-
- 也可以挂载分布式复制卷:
mount -t glusterfs 192.168.1.101:/myvolume-replica /mnt/gluster-replica
-
- 任意节点(
node2
、node3
、node4
)的 IP 都可以作为挂载入口,例如:
- 任意节点(
mount -t glusterfs 192.168.1.102:/myvolume /mnt/gluster
- 检查容量:
df -h /mnt/gluster
输出示例(分布式卷):
Filesystem Size Used Avail Use% Mounted on
192.168.1.101:/myvolume 2.0T 0 2.0T 0% /mnt/gluster
分布式复制卷:
Filesystem Size Used Avail Use% Mounted on
192.168.1.101:/myvolume-replica 1.0T 0 1.0T 0% /mnt/gluster-replica
- 写入测试数据:
echo "Hello GlusterFS" > /mnt/gluster/testfile
-
- 检查 brick(分布式卷,文件出现在某个 brick):
ls -l /data/brick1 # 在 node1 到 node4 上
-
- 分布式复制卷,文件出现在复制组的两个 brick 上(例如
node1
和node2
)。
- 分布式复制卷,文件出现在复制组的两个 brick 上(例如
步骤 6:验证存储池
- 检查数据分布:
-
- 分布式卷:文件分布在 4 个 brick 上,检查:
ls -l /data/brick1 # 每个节点
-
- 分布式复制卷:文件在复制组内有两份副本,例如:
cat /data/brick1/testfile # 在 node1 和 node2 上
- 测试高可用性(仅分布式复制卷):
-
- 停止
node1
的glusterd
:
- 停止
systemctl stop glusterd
-
- 检查客户端:
cat /mnt/gluster-replica/testfile
-
-
- 数据应从
node2
读取,证明副本生效。
- 数据应从
-
- 检查集群状态:
gluster peer status
gluster volume status myvolume
步骤 7:扩展卷(可选)
- 添加新节点:
-
- 新节点
node5
(192.168.1.105),安装 GlusterFS,加入集群:
- 新节点
gluster peer probe 192.168.1.105
- 分布式卷扩展:
gluster volume add-brick myvolume 192.168.1.105:/data/brick1
gluster volume rebalance myvolume start
- 分布式复制卷扩展:
-
- 添加成对 brick(例如
node5
和node6
):
- 添加成对 brick(例如
gluster volume add-brick myvolume-replica replica 2 \
192.168.1.105:/data/brick1 192.168.1.106:/data/brick1
gluster volume rebalance myvolume-replica start
注意事项
- 分布式卷:
-
- 无冗余,节点故障可能导致部分数据不可访问。
-
- 适合大容量需求,但需定期备份。
- 分布式复制卷:
-
- 提供冗余,容量减半。
-
- 写操作同步到副本,可能增加延迟。
- 性能优化:
-
- 使用 XFS 文件系统,挂载选项
noatime
:
- 使用 XFS 文件系统,挂载选项
mount -o noatime /dev/sdX /data
-
- 配置缓存:
gluster volume set myvolume performance.cache-size 1GB
- 高可用挂载:
-
- 配置备用节点:
mount -t glusterfs 192.168.1.101:/myvolume /mnt/gluster \
-o backup-volfile-servers=192.168.1.102:192.168.1.103:192.168.1.104
- 监控:
-
- 定期检查
gluster volume status
和gluster peer status
。
- 定期检查
-
- 可使用 Prometheus 监控集群健康。
常见问题
- 节点状态 Disconnected:
-
- 检查网络连通性和防火墙(端口 24007、49152+)。
-
- 重启
glusterd
:systemctl restart glusterd
。
- 重启
- 挂载失败:
-
- 确保客户端安装了
glusterfs-client
。
- 确保客户端安装了
-
- 检查卷是否启动:
gluster volume info
。
- 检查卷是否启动:
- 容量不符:
-
- 分布式卷:检查每个 brick 的实际容量(
df -h /data/brick1
)。
- 分布式卷:检查每个 brick 的实际容量(
-
- 分布式复制卷:确认复制因子(
replica 2
减半容量)。
- 分布式复制卷:确认复制因子(
下一步
- 探索 NFS/SMB 协议挂载:
mount -t nfs 192.168.1.101:/myvolume /mnt/gluster
- 配置快照(需要 LVM 支持)。
- 集成 OpenStack 或 Kubernetes 使用 GlusterFS 作为存储后端。