You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux RAID 1服务器缩减磁盘容量并将1TB HDD克隆至480GB SSD的技术方案咨询

Linux RAID 1服务器缩减磁盘容量并将1TB HDD克隆至480GB SSD的技术方案咨询

你现在的需求是把服务器上的1TB HDD(当前为RAID 1配置)克隆到480GB SSD上,同时保留所有数据和Linux系统。因为目标SSD容量更小,直接克隆不可行,但从你提供的磁盘使用数据来看,实际已用空间远小于480GB,所以可以先通过命令行缩减现有卷的容量,再完成RAID迁移。接下来我会结合你的服务器配置,给出具体的操作步骤。

你的服务器磁盘配置信息

1. lsblk 输出

NAME                  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   931G  0 disk
├─sda1                  8:1    0   953M  0 part /boot/efi
├─sda2                  8:2    0   953M  0 part /boot
└─sda3                  8:3    0 929.1G  0 part
  ├─rl-root           253:0    0  18.6G  0 lvm  /
  ├─rl-swap           253:1    0  29.8G  0 lvm  [SWAP]
  ├─rl-usr            253:2    0    10G  0 lvm  /usr
  ├─rl-var_lib_docker 253:3    0  93.1G  0 lvm  /var/lib/docker
  ├─rl-opt            253:4    0  93.1G  0 lvm  /opt
  ├─rl-var_log_audit  253:5    0   4.7G  0 lvm  /var/log/audit
  ├─rl-var            253:6    0   9.3G  0 lvm  /var
  ├─rl-home           253:7    0   1.9G  0 lvm  /home
  ├─rl-var_log        253:8    0   4.7G  0 lvm  /var/log
  ├─rl-tmp            253:9    0   4.7G  0 lvm  /tmp
  └─rl-var_tmp        253:10   0   4.7G  0 lvm  /var/tmp

2. fdisk -l /dev/sd? 输出

Disk /dev/sda: 931 GiB, 999653638144 bytes, 1952448512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disklabel type: gpt
Disk identifier: 0219246B-336B-4D22-96A3-FD679EDA66DE

Device       Start        End    Sectors   Size Type
/dev/sda1     2048    1953791    1951744   953M EFI System
/dev/sda2  1953792    3905535    1951744   953M Linux filesystem
/dev/sda3  3905536 1952448478 1948542943 929.1G Linux LVM

3. df -h | grep -v docker 输出

Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       7.5G     0  7.5G   0% /dev
tmpfs                          7.5G     0  7.5G   0% /dev/shm
tmpfs                          7.5G   95M  7.5G   2% /run
tmpfs                          7.5G     0  7.5G   0% /sys/fs/cgroup
/dev/mapper/rl-root             19G  232M   19G   2% /
/dev/mapper/rl-usr              10G  4.8G  5.3G  48% /usr
/dev/mapper/rl-tmp             4.7G   99M  4.6G   3% /tmp
/dev/mapper/rl-home            1.9G 1014M  885M  54% /home
/dev/mapper/rl-var             9.4G  3.0G  6.4G  32% /var
/dev/sda2                      949M  276M  674M  30% /boot
/dev/sda1                      952M  5.8M  946M   1% /boot/efi
/dev/mapper/rl-var_tmp         4.7G   66M  4.6G   2% /var/tmp
/dev/mapper/rl-var_log         4.7G  1.3G  3.5G  27% /var/log
/dev/mapper/rl-opt              94G  7.6G   86G   9% /opt
/dev/mapper/rl-var_log_audit   4.7G  106M  4.6G   3% /var/log/audit
tmpfs                          1.5G     0  1.5G   0% /run/user/0

4. RAID与硬件信息

lspci | grep RAID 输出:

02:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3008 [Fury] (rev 02)

lshw 中磁盘相关片段:

*-raid
    description: RAID bus controller
    product: MegaRAID SAS-3 3008 [Fury]
    vendor: Broadcom / LSI
    physical id: 0
    bus info: pci@0000:02:00.0
    logical name: scsi0
    version: 02
    width: 64 bits
    clock: 33MHz
    capabilities: raid pm pciexpress msi msix bus_master cap_list rom
    configuration: driver=megaraid_sas latency=0
    resources: irq:17 ioport:5000(size=256) memory:91c00000-91c0ffff memory:91b00000-91bfffff memory:91a00000-91afffff
*-disk
    description: SCSI Disk
    product: PRAID CP400i
    vendor: FTS
    physical id: 2.0.0
    bus info: scsi@0:2.0.0
    logical name: /dev/sda
    version: 4.68
    serial: 004f93e10b84d6222c40f6200004000e
    size: 931GiB (999GB)
    capabilities: gpt-1.00 partitioned partitioned:gpt
    configuration: ansiversion=5 guid=0219246b-336b-4d22-96a3-fd679eda66de logicalsectorsize=512 sectorsize=4096

具体操作步骤

前置准备

  1. 全量备份数据:操作前务必备份所有重要数据,比如用tar打包关键目录,或者用服务器自带的备份工具,避免操作失误导致数据丢失。
  2. 安装必要工具:确保服务器已安装lvm2、parted、storcli(或MegaCLI,用于管理LSI RAID控制器),如果缺失可以用yum install安装。
  3. 物理/远程管理权限:因为要替换硬盘,你需要物理接触服务器,或者通过IPMI等远程管理卡操作。

步骤1:缩减LVM逻辑卷与卷组

从磁盘使用情况看,大部分LVM卷的已用空间远小于分配容量,先把这些卷的容量缩减到实际需要的大小,为后续迁移腾出空间。

1.1 缩减Swap卷

Swap卷是最容易处理的:

  • 关闭Swap:swapoff /dev/mapper/rl-swap
  • 缩减Swap LV:lvreduce -L 16G /dev/mapper/rl-swap(把29.8G缩减到16G,完全足够日常使用,省出13.8G空间)
  • 重新格式化Swap:mkswap /dev/mapper/rl-swap
  • 开启Swap:swapon /dev/mapper/rl-swap
  • 检查/etc/fstab,如果Swap的UUID发生变化,用blkid查看新UUID并替换文件中对应的条目。

1.2 缩减其他逻辑卷

注意:XFS文件系统不支持在线缩减,所以对于/usr、/var这类XFS格式的卷,需要用备份-删除-重建-恢复的方式处理,以rl-opt为例:

  1. 备份数据:tar -czf /tmp/opt_backup.tar.gz /opt
  2. 卸载卷:umount /opt(如果有进程占用,先停止相关进程,或者进入单用户模式操作更安全)
  3. 删除原LV:lvremove /dev/mapper/rl-opt
  4. 创建更小的LV:lvcreate -L 20G -n rl-opt rl(根据已用7.6G,分配20G完全足够)
  5. 格式化LV:mkfs.xfs /dev/mapper/rl-opt
  6. 挂载LV:mount /dev/mapper/rl-opt /opt
  7. 恢复数据:tar -xzf /tmp/opt_backup.tar.gz -C /opt

对于支持缩减的ext系列文件系统,可以直接执行:

  • 卸载卷→检查文件系统:e2fsck -f /dev/mapper/xxx→缩减文件系统:resize2fs /dev/mapper/xxx 目标大小→缩减LV:lvreduce -L 目标大小 /dev/mapper/xxx→重新挂载。

1.3 缩减卷组与物理卷

当所有LV都调整完成后,把多余空间从物理卷(PV)中释放:

  • 查看卷组剩余空间:vgs
  • 缩减PV容量:pvresize --setphysicalvolumesize 350G /dev/sda3(估算总LV容量约188G,350G远小于480G,完全满足需求)
  • 确认PV新容量:pvs

步骤2:替换RAID 1中的HDD为SSD

因为当前是RAID 1配置,可以逐块替换硬盘,避免系统停机:

2.1 查看RAID状态

用storcli查看RAID组信息:storcli /c0 show all,找到当前的RAID 1卷组(通常是VD 0)和对应的磁盘编号。

2.2 替换第一块HDD

  • 标记磁盘为离线:storcli /c0/e0/s0 set offline(s0是要移除的HDD编号,根据实际情况调整)
  • 标记为缺失:storcli /c0/e0/s0 set missing
  • 物理拔出该HDD,插入480GB SSD
  • 初始化SSD:storcli /c0/e0/s0 set good
  • 将SSD加入RAID组并重建:storcli /c0/v0 add drives=e0:s0
  • 等待RAID重建完成:storcli /c0 show rebuild查看进度,直到显示完成。

2.3 替换第二块HDD

第一块SSD同步完成后,重复步骤2.2,移除剩下的1TB HDD,插入第二块480GB SSD,等待RAID重建完成。

步骤3:调整分区与LVM适配SSD容量

现在RAID组总容量为480GB,需要调整分区表和LVM到新容量:

  • 备份当前分区表:sfdisk -d /dev/sda > /tmp/partition_backup.sfd
  • 用parted调整/dev/sda3的大小,使其不超过480G - 953M*2 ≈ 478G
  • 同步PV到新分区大小:pvresize /dev/sda3
  • 可根据需要再次调整LV的容量(比如把省出的空间分配给需要的卷)

步骤4:验证系统可用性

  • 重启服务器,检查所有挂载点:df -h
  • 检查RAID状态:storcli /c0 show all
  • 测试所有服务是否正常运行,确认数据无丢失。

备选方案:用Clonezilla简化操作

如果觉得命令行操作太复杂,可以用Clonezilla启动盘:

  1. 制作Clonezilla启动U盘,用U盘启动服务器
  2. 对现有HDD系统制作仅包含已用空间的磁盘镜像
  3. 替换HDD为SSD,用Clonezilla恢复镜像到SSD,工具会自动调整分区适配SSD容量
  4. 恢复完成后,通过RAID管理工具加入第二块SSD,重建RAID 1

备注:内容来源于stack exchange,提问作者Metre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:28:13