运维笔记:存储与备份

一、存储技术概述

1.1 存储介质分类

  • 硬盘驱动器(HDD):基于机械部件,通过磁头在旋转的磁盘上读写数据。特点是容量大、成本低,但速度较慢、抗震性差。按接口可分为 SATA(Serial ATA,传输速率较高,广泛应用于台式机和服务器)、SAS(Serial Attached SCSI,性能优于 SATA,适合企业级应用)。
  • 固态硬盘(SSD):基于闪存芯片存储数据,无机械部件。特点是读写速度快、抗震性好、功耗低,但容量相对较小、成本较高。按接口可分为 SATA、NVMe(Non-Volatile Memory Express,专为 SSD 设计,性能远高于 SATA 接口)。
  • 磁带存储:以磁带为存储介质,容量大、成本极低、保存时间长,但读写速度慢,适合离线归档和长期备份。

1.2 存储架构

  • DAS(直接附加存储):存储设备直接连接到服务器,如服务器内置硬盘、外接硬盘阵列。优点是部署简单、成本低;缺点是存储资源无法共享,扩展性差。
  • NAS(网络附加存储):通过网络与服务器连接,提供文件级存储服务,支持多种操作系统访问(Windows、Linux、macOS)。常用协议有 NFS(Network File System,适用于 Linux/Unix)、CIFS/SMB(Common Internet File System/Server Message Block,适用于 Windows)。优点是易于部署和管理、支持多客户端共享;缺点是性能受网络带宽限制。
  • SAN(存储区域网络):通过专用网络(如光纤通道 FC、iSCSI)连接存储设备和服务器,提供块级存储服务,服务器将其视为本地磁盘。优点是性能高、扩展性强、适合关键业务;缺点是部署复杂、成本高。

1.3 存储协议

  • SCSI(Small Computer System Interface):一种用于连接计算机和外部设备的接口标准,支持多种设备(硬盘、光驱等),传输速率高。
  • iSCSI(Internet Small Computer System Interface):将 SCSI 命令通过 IP 网络传输,实现 SAN 存储的 IP 化,降低了 SAN 的部署成本,便于跨网络扩展。
  • FC(Fibre Channel):专为 SAN 设计的高速串行接口协议,传输速率高(可达 128Gbps)、延迟低,适合对性能要求极高的场景。
  • NFS(Network File System):允许不同操作系统的计算机通过网络共享文件,Linux 和 Unix 系统中应用广泛。
  • SMB/CIFS:主要用于 Windows 系统的文件共享,目前最新版本为 SMB 3.1.1,支持加密、多通道等功能。

二、本地存储管理

2.1 Linux 磁盘管理

  • 磁盘分区
    • MBR(Master Boot Record):传统分区方式,支持最大磁盘容量 2TB,最多 4 个主分区(或 3 个主分区 + 1 个扩展分区,扩展分区内可创建多个逻辑分区)。
    • GPT(GUID Partition Table):新型分区方式,支持超过 2TB 的磁盘容量,最多可创建 128 个主分区,支持 UEFI 启动。
    • 分区工具:fdisk(支持 MBR 和 GPT,操作简单)、parted(功能更强大,支持大磁盘和 GPT 分区)。例如,使用fdisk /dev/sdb对 /dev/sdb 磁盘进行分区,通过n创建分区,w保存退出。
  • 文件系统创建与挂载
    • 创建文件系统:mkfs.ext4 /dev/sdb1(创建 ext4 文件系统)、mkfs.xfs /dev/sdb1(创建 XFS 文件系统)、mkfs.btrfs /dev/sdb1(创建 Btrfs 文件系统)。
    • 临时挂载:mount /dev/sdb1 /mnt/data(将 /dev/sdb1 挂载到 /mnt/data 目录)。
    • 永久挂载:编辑/etc/fstab文件,添加/dev/sdb1 /mnt/data ext4 defaults 0 0,其中各字段分别为设备路径、挂载点、文件系统类型、挂载选项、dump 备份标志、fsck 检查顺序。使用mount -a使/etc/fstab生效。
    • 卸载分区:umount /mnt/data或umount /dev/sdb1。

2.2 Windows Server 磁盘管理

  • 磁盘初始化:在 “磁盘管理” 中,新磁盘需先初始化,选择 MBR 或 GPT 分区样式。
  • 分区创建:右键点击未分配空间,选择 “新建简单卷”,按照向导设置卷大小、驱动器号、文件系统(NTFS 为主)、分配单元大小和卷标。
  • 动态磁盘与基本磁盘:基本磁盘支持主分区和扩展分区;动态磁盘支持简单卷、跨区卷(将多个磁盘空间合并)、带区卷(类似 RAID 0,提高性能)、镜像卷(类似 RAID 1,提供冗余)、RAID-5 卷(需要至少 3 个磁盘,兼具性能和冗余)。可通过 “磁盘管理” 将基本磁盘转换为动态磁盘(不可逆)。
  • 挂载点设置:除了分配驱动器号,还可将卷挂载到空文件夹(NTFS 格式),适合驱动器号不足的场景。

三、高级存储技术

3.1 RAID 技术详解

RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)通过将多个磁盘组合起来,提高存储性能、可靠性或两者兼具。

  • RAID 0:将数据分散到多个磁盘,并行读写,提高性能(读写速度为各磁盘之和),但无冗余,任一磁盘故障数据丢失。适合对性能要求高、数据不重要的场景(如视频编辑缓存)。最少需要 2 块磁盘。
  • RAID 1:磁盘镜像,数据同时写入两块磁盘,一块磁盘故障时,另一块可继续工作,可靠性高,但容量利用率仅 50%,性能与单盘接近。适合存储重要数据(如系统盘、数据库日志)。最少需要 2 块磁盘。
  • RAID 5:分布式奇偶校验,数据和奇偶校验信息分散在所有磁盘,允许单块磁盘故障,容量利用率为(n-1)/n(n 为磁盘数量),读写性能较好。适合一般业务数据存储。最少需要 3 块磁盘。
  • RAID 6:双奇偶校验,允许同时两块磁盘故障,安全性高于 RAID 5,但写入性能略低,容量利用率为(n-2)/n。最少需要 4 块磁盘。
  • RAID 10:RAID 1+0,先将磁盘两两组成 RAID 1,再将多个 RAID 1 组成 RAID 0,兼具高性能和高可靠性,但成本高,容量利用率 50%。适合对性能和可靠性要求都高的场景(如数据库)。最少需要 4 块磁盘。
  • 软 RAID 与硬 RAID:软 RAID 通过操作系统实现(如 Linux 的 mdadm、Windows 的动态磁盘),成本低但占用 CPU 资源;硬 RAID 通过 RAID 卡实现,性能好、不占用 CPU 资源,支持电池备份单元(BBU)防止断电数据丢失。

3.2 Linux 软件 RAID(mdadm)

  • 创建 RAID 5:mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1(将 3 块磁盘分区组成 RAID 5,设备为 /dev/md0)。
  • 查看 RAID 状态:mdadm --detail /dev/md0或cat /proc/mdstat。
  • 添加热备盘:mdadm /dev/md0 --add /dev/sde1(当 RAID 中磁盘故障,热备盘自动替换故障盘并重建)。
  • 替换故障盘:mdadm /dev/md0 --fail /dev/sdb1(标记故障盘)、mdadm /dev/md0 --remove /dev/sdb1(移除故障盘)、mdadm /dev/md0 --add /dev/sdf1(添加新盘重建)。

3.3 LVM 高级应用

  • 快照功能:LVM 快照可创建逻辑卷在某一时刻的只读或可写副本,用于备份或测试。创建快照:lvcreate --size 10G --snapshot --name snap_data /dev/vg_data/lv_data(为 /dev/vg_data/lv_data 创建 10G 大小的快照 snap_data)。挂载快照:mount /dev/vg_data/snap_data /mnt/snap。删除快照:lvremove /dev/vg_data/snap_data。
  • 卷组扩展:添加新物理卷到卷组:vgextend vg_data /dev/sdc(将 /dev/sdc 添加到 vg_data 卷组)。
  • 逻辑卷缩减:需先卸载文件系统,检查文件系统完整性(如e2fsck -f /dev/vg_data/lv_data),缩减文件系统(resize2fs /dev/vg_data/lv_data 50G),再缩减逻辑卷(lvreduce --size 50G /dev/vg_data/lv_data)。注意:XFS 文件系统不支持缩减,操作前需谨慎。
  • 跨设备迁移:pvmove /dev/sdb /dev/sdc(将 /dev/sdb 上的物理扩展迁移到 /dev/sdc,迁移完成后可移除 /dev/sdb)。

3.4 存储虚拟化

  • 存储池:将多个物理存储设备抽象为一个逻辑存储池,统一管理和分配存储空间。例如,Linux 的 LVM 卷组本质上就是一种存储池。
  • thin provisioning(瘦供给):按需分配存储空间,创建逻辑卷时不实际占用物理空间,只有写入数据时才分配,提高存储利用率。LVM 和 Btrfs 都支持瘦供给。

四、备份技术与方案

4.1 备份类型深入解析

  • 全量备份:完整备份所有数据,优点是恢复简单(直接恢复全量备份),缺点是备份时间长、占用存储空间大。适合数据量小或重要程度高的场景,通常作为其他备份的基础。
  • 增量备份:仅备份自上一次备份(全量或增量)后变化的数据,优点是备份速度快、占用空间小,缺点是恢复复杂(需要全量备份 + 所有增量备份),且任一增量备份损坏可能影响恢复。
  • 差异备份:备份自上一次全量备份后变化的数据,优点是恢复较增量备份简单(全量备份 + 最新差异备份),缺点是备份时间和空间随时间增长。
  • 合成全量备份:通过全量备份和后续增量备份合成新的全量备份,减少全量备份的时间和资源消耗,适合定期更新全量备份。

4.2 备份介质选择

  • 磁盘备份:使用本地硬盘、外部硬盘或 NAS,优点是速度快、易管理,适合短期备份和频繁恢复。
  • 磁带备份:适合长期归档,容量大、成本低、离线存储安全性高,但读写速度慢、恢复不便。
  • 云备份:将数据备份到云存储服务(如 AWS S3、阿里云 OSS、腾讯云 COS),优点是无需管理硬件、扩展性好、异地存储防灾难,缺点是依赖网络带宽、长期成本可能较高。

4.3 备份策略制定

  • 3-2-1 备份原则:至少创建 3 份数据副本,存储在 2 种不同的介质上,其中 1 份存储在异地。该原则能有效应对各种数据丢失场景(如硬件故障、自然灾害、勒索病毒)。
  • 备份周期:根据数据变化频率和重要性确定,例如:
    • 核心业务数据(如数据库):每日增量备份 + 每周全量备份。
    • 普通文件数据:每周增量备份 + 每月全量备份。
  • 备份窗口:选择业务低谷期进行备份,减少对系统性能的影响,例如夜间或周末。

4.4 企业级备份工具

  • Bacula:开源企业级备份解决方案,支持跨平台(Linux、Windows、macOS),采用客户端 - 服务器架构,支持全量、增量、差异备份,可通过控制台或 Web 界面管理。
  • Veeam Backup & Replication:专为虚拟化环境(VMware、Hyper-V)设计,支持快速备份和恢复虚拟机,提供即时恢复、虚拟机复制等功能,适合企业级虚拟化环境。
  • Commvault:一体化数据管理平台,支持备份、归档、复制、容灾等功能,兼容多种存储环境和应用(数据库、虚拟机、云服务)。

五、Linux 备份工具实战

5.1 tar 高级用法

  • 压缩备份:tar -zcvf /backup/data_$(date +%Y%m%d).tar.gz /home /etc(将 /home 和 /etc 目录压缩备份为带日期的 tar.gz 文件)。
  • 排除文件 / 目录:tar -zcvf /backup/data.tar.gz --exclude=/home/tmp --exclude=/home/*.log /home(备份 /home 时排除 /tmp 目录和.log 文件)。
  • 增量备份:结合--listed-incremental选项,tar -zcvf /backup/full_backup.tar.gz --listed-incremental=/backup/snapshot.snar /data(创建全量备份并生成快照文件),tar -zcvf /backup/incr_backup.tar.gz --listed-incremental=/backup/snapshot.snar /data(基于前一次备份创建增量备份)。
  • 恢复文件:tar -zxvf /backup/data.tar.gz /home/user/file(恢复单个文件)、tar -zxvf /backup/data.tar.gz -C /tmp(恢复到 /tmp 目录,不覆盖原文件)。

5.2 rsync 备份方案

  • 本地同步:rsync -avz /data /backup/data(将 /data 目录同步到 /backup/data,保持权限和属性)。
  • 远程同步:rsync -avz /data user@remote_host:/backup(通过 SSH 同步到远程主机)、rsync -avz user@remote_host:/data /local/backup(从远程同步到本地)。
  • 增量同步与删除:rsync -avz --delete /data /backup/data(同步时删除目标目录中源目录不存在的文件,保持完全一致)。
  • 定时同步:结合 crontab,0 2 * * * rsync -avz /data user@192.168.1.100:/backup > /var/log/rsync.log 2>&1(每天凌晨 2 点执行同步并记录日志)。

5.3 数据库备份工具

  • MySQL/MariaDB 备份:mysqldump -u root -p --all-databases --single-transaction --master-data=2 > /backup/mysql_full_$(date +%Y%m%d).sql(备份所有数据库,--single-transaction 保证 InnoDB 数据一致性,--master-data 记录二进制日志位置用于恢复)。
  • PostgreSQL 备份:pg_dump -U postgres -F c -f /backup/postgres_full.dump postgres(使用自定义格式备份 postgres 数据库,压缩率高)、pg_dumpall -U postgres > /backup/postgres_all.sql(备份所有数据库和角色)。
  • MongoDB 备份:mongodump --host 127.0.0.1 --port 27017 --out /backup/mongodb_$(date +%Y%m%d)(备份所有数据库到指定目录)、mongodump --db test --collection users --out /backup(仅备份 test 库的 users 集合)。

六、Windows 备份工具实战

6.1 Windows Server Backup

  • 基本备份:通过 “服务器管理器” 打开 Windows Server Backup,选择 “本地备份”,创建备份计划(如每日 20:00 备份系统状态和数据卷),或执行一次性备份。
  • 恢复操作
    • 文件恢复:选择备份时间点,浏览到需要恢复的文件,指定恢复位置(原位置或其他位置)。
    • 系统恢复:当系统无法启动时,从 Windows Server 安装介质启动,选择 “修复计算机”,通过 “Windows Server Backup” 恢复系统镜像。
  • 命令行操作:wbadmin start backup -backupTarget:D: -include:C: -allCritical(备份 C 盘和所有关键卷到 D 盘)、wbadmin get versions(查看可用备份版本)。

6.2 robocopy 命令

robocopy 是 Windows 下功能强大的文件复制工具,适合批量备份。

  • 基本用法:robocopy C:\data D:\backup\data /E /Z /R:3 /W:5(将 C:\data 复制到 D:\backup\data,/E 复制所有子目录包括空目录,/Z 重启模式,/R:3 重试 3 次,/W:5 每次重试等待 5 秒)。
  • 镜像同步:robocopy C:\data D:\backup\data /MIR(镜像复制,删除目标中源不存在的文件)。
  • 日志记录:robocopy C:\data D:\backup\data /E /LOG:C:\robocopy.log(将操作记录到日志文件)。

6.3 卷影副本服务(VSS)

VSS 允许在文件被占用时创建一致性备份,Windows Server Backup、第三方备份工具通常依赖 VSS。

  • 查看卷影副本:vssadmin list shadows(列出所有卷影副本)。
  • 创建卷影副本:vssadmin create shadow /for=C:(为 C 盘创建卷影副本)。
  • 恢复文件:通过 “以前的版本” 功能,右键点击文件或文件夹,选择 “属性”->“以前的版本”,选择卷影副本恢复。

七、数据恢复技术

7.1 文件系统损坏恢复

  • Linux 文件系统修复:fsck.ext4 /dev/sdb1(修复 ext4 文件系统,需卸载分区)、xfs_repair /dev/sdb1(修复 XFS 文件系统,ext4 的 fsck 对应 xfs 的 xfs_repair)。注意:修复前建议备份数据,避免数据丢失。
  • Windows 文件系统修复:chkdsk C: /f /r(检查并修复 C 盘错误,/f 修复文件错误,/r 查找坏扇区并恢复数据,需要重启)。

7.2 误删除文件恢复

  • Linux 恢复工具:extundelete(恢复 ext3/ext4 文件系统误删文件)、testdisk(支持多种文件系统,可恢复分区表和文件)。例如,extundelete /dev/sdb1 --restore-file /home/user/file.txt(从 /dev/sdb1 恢复指定文件)。
  • Windows 恢复工具:Recuva(免费工具,支持 NTFS 和 FAT 文件系统)、EaseUS Data Recovery Wizard(功能更强大,支持多种存储介质)。恢复时需避免在原分区写入新数据,防止覆盖删除的文件。

7.3 数据库恢复

  • MySQL 恢复
    • 基于备份文件恢复:mysql -u root -p < /backup/mysql_backup.sql。
    • 基于二进制日志恢复:如果启用了二进制日志,可恢复到指定时间点。例如,mysqlbinlog --start-datetime="2023-10-01 08:00:00" --stop-datetime="2023-10-01 09:00:00" /var/log/mysql/binlog.000001 | mysql -u root -p。
  • SQL Server 恢复:通过 “SQL Server Management Studio” 还原数据库备份,支持完整备份 + 差异备份 + 日志备份的链式恢复,可指定恢复到某个时间点。

7.4 灾难恢复计划(DRP)

  • 灾难恢复策略
    • 冷备份:异地存储备份数据,灾难发生后需重新搭建环境并恢复数据,RTO(恢复时间目标)和 RPO(恢复点目标)较长。
    • 热备份:异地部署实时同步的备用系统,灾难发生后可快速切换,RTO 和 RPO 较短,但成本高。
  • 灾难恢复演练:定期测试灾难恢复流程,验证备份的有效性和恢复时间,确保灾难发生时能顺利恢复业务。

八、存储与备份监控

8.1 存储监控指标

  • 磁盘使用率:监控各分区或卷的已用空间和使用率,超过阈值(如 85%)告警。
  • I/O 性能:磁盘读写速度(IOPS、吞吐量)、平均响应时间,过高的延迟可能影响应用性能。
  • RAID 状态:监控 RAID 阵列是否正常,是否有磁盘故障或重建状态。
  • 备份状态:监控备份任务是否成功完成、备份大小、备份时间,失败时及时告警。

8.2 监控工具

  • Linux 存储监控:df -h(磁盘使用率)、iostat -x 5(磁盘 I/O)、smartctl -a /dev/sda(通过 SMART 技术监控硬盘健康状态,预测硬盘故障)。
  • Windows 存储监控:“性能监视器” 添加计数器(如 PhysicalDisk\Avg. Disk Sec/Read、LogicalDisk% Free Space)、“磁盘管理” 查看磁盘状态。
  • 企业级监控:Zabbix 通过自定义脚本或模板监控存储设备和备份软件;PRTG Network Monitor 支持存储设备(NAS、SAN)和备份系统的监控。

8.3 备份验证

  • 文件验证:随机抽取备份文件,检查完整性和可读性。
  • 恢复测试:定期进行恢复演练,将备份数据恢复到测试环境,验证数据的可用性和完整性,确保备份有效。
  • 校验和验证:备份时生成文件校验和(如 MD5、SHA256),恢复后验证校验和是否一致,md5sum file(Linux)、CertUtil -hashfile file MD5(Windows)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值