百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

第十九节:Linux存储管理:从块设备到分布式存储

ahcoder 2025-03-11 12:30 21 浏览

1. 存储管理的核心目标与挑战

1.1 核心目标

  1. 数据可靠性:确保数据在硬件故障时不丢失。
  2. 性能优化:最大化I/O吞吐量,降低延迟。
  3. 扩展性:支持从单机存储到分布式存储的平滑扩展。
  4. 成本控制:平衡性能与存储成本(如SSD vs HDD)。

1.2 主要挑战

  • 硬件故障:磁盘损坏、RAID失效、数据丢失。
  • 性能瓶颈:I/O争用、文件系统碎片、缓存失效。
  • 数据一致性:分布式环境下的数据同步与一致性保障。
  • 容量规划:预测存储需求,避免资源浪费或不足。

2. 块设备与文件系统

2.1 块设备管理

设备发现与分区

# 查看块设备信息
lsblk

# 创建分区
fdisk /dev/sdb
n  # 新建分区
p  # 主分区
w  # 保存并退出

格式化与挂载

# 格式化为ext4
mkfs.ext4 /dev/sdb1

# 挂载到目录
mount /dev/sdb1 /mnt/data

# 查看挂载点
df -h

2.2 文件系统选型

文件系统

特点

适用场景

ext4

成熟稳定,兼容性强

通用服务器

XFS

高性能,支持超大文件与高并发写入

数据库、大数据存储

Btrfs

支持快照、压缩、RAID

容器存储、备份系统

ZFS

数据完整性校验、动态卷管理

企业级存储

XFS性能优化

# 格式化时启用大文件支持
mkfs.xfs -f -d agcount=32 /dev/sdb1  # 分配组数=CPU核心数

# 挂载选项优化
mount -o noatime,nodiratime,logbsize=256k /dev/sdb1 /mnt/data

3. RAID与LVM:从数据冗余到动态扩展

3.1 RAID级别对比

级别

冗余性

性能

磁盘利用率

适用场景

RAID 0

100%

高性能、非关键数据

RAID 1

镜像

50%

高可靠性、小规模存储

RAID 5

奇偶校验

(n-1)/n

平衡性能与可靠性

RAID 10

镜像+条带

50%

高性能、高可靠性

创建RAID阵列

# 安装mdadm
sudo apt-get install mdadm

# 创建RAID 5
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1

# 查看RAID状态
cat /proc/mdstat

3.2 LVM(逻辑卷管理)

核心概念

  • 物理卷(PV):物理磁盘或分区。
  • 卷组(VG):多个PV的集合。
  • 逻辑卷(LV):从VG中划分的逻辑存储空间。

LVM操作

# 创建物理卷
pvcreate /dev/sdb1

# 创建卷组
vgcreate vg_data /dev/sdb1

# 创建逻辑卷
lvcreate -L 100G -n lv_data vg_data

# 扩展逻辑卷
lvextend -L +50G /dev/vg_data/lv_data
resize2fs /dev/vg_data/lv_data

4. 分布式存储:从Ceph到GlusterFS

4.1 Ceph架构

核心组件

  • RADOS:可靠分布式对象存储。
  • CephFS:分布式文件系统。
  • RBD:分布式块设备。

部署Ceph集群

# 安装Ceph
wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
echo deb https://download.ceph.com/debian-octopus/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
sudo apt-get update
sudo apt-get install ceph-deploy

# 创建集群
ceph-deploy new node1
ceph-deploy install node1 node2 node3
ceph-deploy mon create-initial
ceph-deploy osd create node1:/data node2:/data node3:/data

4.2 GlusterFS架构

核心概念

  • Brick:存储单元(目录或分区)。
  • Volume:由多个Brick组成的逻辑卷。

部署GlusterFS

# 安装GlusterFS
sudo apt-get install glusterfs-server

# 创建分布式卷
gluster volume create gv0 replica 3 node1:/data/brick1 node2:/data/brick2 node3:/data/brick3
gluster volume start gv0

# 挂载GlusterFS
mount -t glusterfs node1:/gv0 /mnt/gluster

5. 存储性能调优与监控

5.1 I/O调度器

调度器

特点

适用场景

CFQ

公平队列,适合多任务环境

通用场景

Deadline

保证I/O请求的截止时间

数据库、实时任务

Noop

简单FIFO队列,适合SSD

SSD存储

修改调度器

echo deadline > /sys/block/sda/queue/scheduler

5.2 性能监控工具

iostat

# 查看磁盘I/O统计
iostat -dxmt 2

iotop

# 实时查看I/O占用
iotop -o

fio性能测试

# 随机读写测试
fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=4 --runtime=60 --time_based --group_reporting

6. 生产案例:高可用存储架构设计

6.1 案例一:数据库存储优化

  • 场景:MySQL数据库在高并发下I/O性能不足。
  • 优化步骤
  • RAID 10:提升读写性能与可靠性。
  • XFS文件系统:优化大文件与高并发写入。
  • I/O调度器:使用Deadline调度器。
  • 缓存加速:启用MySQL查询缓存与InnoDB缓冲池。

6.2 案例二:分布式存储部署

  • 场景:企业需要PB级存储,支持高可用与弹性扩展。
  • 架构设计
  • Ceph集群:3个监控节点 + 12个OSD节点。
  • GlusterFS:用于文件共享与备份。
  • 监控系统:Prometheus + Grafana监控存储性能。

7. 未来趋势:NVMe与持久内存

7.1 NVMe存储

  • 核心优势:低延迟、高吞吐量,适合高性能场景。
  • 部署示例

# 查看NVMe设备
nvme list
# 格式化并挂载
mkfs.ext4 /dev/nvme0n1
mount /dev/nvme0n1 /mnt/nvme

7.2 持久内存(PMEM)

  • 核心特性:断电不丢失数据,性能接近DRAM。
  • 应用场景:内存数据库、实时分析。

使用PMEM

# 创建PMEM命名空间
ndctl create-namespace -m fsdax -f -e namespace0.0

# 挂载为DAX文件系统
mount -o dax /dev/pmem0 /mnt/pmem

总结:从单机存储到分布式未来

存储管理是Linux运维的核心技能,从块设备到分布式存储,每一层技术都在为数据可靠性、性能与扩展性提供保障。


相关推荐

Linux ntp时钟同步问题(linux ntp同步命令)

有时候,操作系统会报linux的ntp时钟错误。从时钟源同步时间超时。我查看了一下ntp的时钟源,发现执行ntpq-p显示超时。执行nslookup时钟服务器域名,发现可以正常解析。执行了n...

linux服务器同步利器Rsync全介绍(付脚本)

1、认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件...

如何使用Rsync同步两个网站服务器的内容

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。如需学习视频,请复制以下信息到手机浏览器或电脑浏览器上:zc...

Linux TB级小文件同步备份解决方案

在某些电子档案存储的业务系统下,按照业务场景要求,需要将产生的所有电子影像资料永久存储,并支持备份;因为“钞能力”等原因,一般备份存储只有一个节点(即:一个备份存储服务器);这样就要求研发工程师,不...

CentOS7下使用Lsyncd实现文件实时同步

Lsyncd简单介绍Lsyncd使用文件系统事件接口(inotify或fsevents)来监视本地文件和目录的更改。Lsyncd在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更...

如何手动同步Linux系统时间并与互联网时间保持同步?

在Linux系统中,正确的时间同步对于许多任务都是至关重要的。一些关键应用程序可能需要准确的时间戳才能正常工作,而一些安全功能也需要确保所有服务器的时间都是准确的。NTP服务可以自动同步系统时间和互...

Linux服务器Rsync定时同步一键化配置指南

1、主从服务器同时安装rsyncopenssh-clientaptupdate&&aptinstall-yrsyncopenssh-client2、主服务器安装好后输入以下命令生成密钥...

Linux系统如何使用NTPDATE命令设置时间同步

简介:咱们在使用Linux系统的时候,常常能发现用了一阵子之后,Linux系统的时间就对不上了。已经知道的情况是,安装Linux的时候选的时区是Asia/Shanghai,可这系统运行了一...

开源的Linux文件同步工具有哪些?(linux 文件夹 同步)

Linux系统之间经常需要文件同步,一个好的文件同步工具省时省力,这里介绍几款开源的Linux文件同步工具1.rsync:rsync是Linux上一个功能强大的命令行工具,可以在不同的服务器之间同...

Linux 系统使用 rsync + inotify 实现文件实时同步

Linux系统使用rsync+inotify实现文件实时同步简介inotify监控文件的变化后通知rsync进行文件的同步#配置免密登录ssh-keygen-trsaca...

Linux 远程数据同步工具详解(linux远程同步命令)

一、简介1认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之...

构建基于 Linux 的 NTP 时间同步集群与时间安全防护实战指南

一、为什么时间同步对系统如此重要?在分布式系统、数据库复制、消息队列、审计日志、安全认证(如Kerberos)、容器编排等场景中,系统时间一致性是保障正确性与安全性的基础。一旦服务器间时间漂移,可能...

每日Linux学习:同步备份工具 rsync

rsync是一个用于高效同步文件和目录的工具。它通过仅传输变化的部分(增量传输)来节省时间和带宽,支持本地同步、远程同步(通过SSH),还能保留文件原有权限、时间戳等属性。本文通过几个常用的实例来...

Chromixium OS 1.0发布 基于Ubuntu发行版

Chromixium项目宣布chromixiumOS1发布,一款基于Ubuntu的Linux分支,chromixiumOS试图重新打造一款外观和感觉与ChromeOS相似的完...

iOS8.0.X~iOS8.1完美越狱!盘古团队出品

【巴士速递·移动情报站】最新消息,iOS8.1越狱了!!此次越狱依旧是iOS7时代我国的大神盘古团队带来的,而该次越狱支持最新的iPhone6、iPhone6Plus、iPadAir2和iPad...