AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 420592
Accepted
Mike Pennington
Mike Pennington
Asked: 2012-08-24 14:24:48 +0800 CST2012-08-24 14:24:48 +0800 CST 2012-08-24 14:24:48 +0800 CST

重新平衡 CentOS / RHEL Ext4 LVM 分配

  • 772

我们的公司标准是 CentOS(它似乎更喜欢 LVM),而我主要来自非 LVM 背景,所以我正在为这个问题开辟新天地。

我继承了一台旧机器作为日志服务器,不得不重新安装 CentOS。由于主板上的 EHCI 问题(通过正常安装 DVD 或通过 LiveCD GUI 安装),我能找到的唯一可以安装 CentOS 6.3 的是 LiveCD 文本安装。LiveCD 文本安装不允许我在磁盘上进行自己的分区设置;它只安装 LVM 并给了我错误的日志服务器空间分配......

[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m

[mpenning@someHost ~]$ df -m
Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
                         50397      2167     47719   5% /
tmpfs                     1850         0      1850   0% /dev/shm
/dev/md127p1               485        65       395  15% /boot
/dev/mapper/vg_livecd-lv_home
                        227001       188    215283   1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
  --- Volume group ---
  VG Name               vg_livecd
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                3
  Open LV               3
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               278.96 GiB
  PE Size               4.00 MiB
  Total PE              71415
  Alloc PE / Size       71415 / 278.96 GiB
  Free  PE / Size       0 / 0
  VG UUID               8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU

[mpenning@someHost ~]$

两个问题:

  1. 如果我需要增加到/257398 个 1-M 块并减少/home到 20000 个 1-M 块,我可以在不重新启动的情况下执行此操作吗?如果可以,执行此操作的具体命令序列是什么?
  2. 如果我想添加一个专用/var分区,我应该如何做而不是完全重新安装?
centos
  • 2 2 个回答
  • 2413 Views

2 个回答

  • Voted
  1. Best Answer
    larsks
    2012-08-24T18:17:35+08:002012-08-24T18:17:35+08:00

    如果我需要增加 / 以拥有 257398 个 1-M 块并将 /home 减少到 20000 个 1-M 块,我可以在不重新启动的情况下执行此操作吗?如果可以,执行此操作的具体命令序列是什么?

    您大约有 280GB 的可用空间,其中 50GB 已分配给 '/',230GB 已分配给/home. 因为这代表了您所有的可用空间,所以您必须先释放一些空间。这里有几个选项:

    如果您没有在 中放置任何数据/home,最简单的方法是丢弃现有文件系统并以适当的大小重新创建它:

    • 卸载/home:

      # umount /home
      
    • 将逻辑卷 (LV) 的大小减小到 20GB:

      # lvreduce -L 20G /dev/vg_livecd/lv_home
      
    • 重新创建/home文件系统:

      # mke2fs -j -m0 /dev/vg_livecd/lv_home
      
    • 并重新安装/home:

      # mount /home
      

    可以缩小 /home而不是丢弃它,但这可能有点棘手:

    • 卸载/home:

      # umount /home
      
    • fsck文件系统。这可能是下一步所需要的:

      # fsck /dev/vg_livecd/lv_home
      
    • 调整文件系统大小:

      # resize2fs /dev/vg_livecd/lv_home 19G
      
    • 降低 LV:

      # lvreduce -L 20G /dev/vg_livecd/lv_home
      

    您会注意到我减少的文件系统比 LV 多一点;这是因为我永远不记得他们是否以相同的方式计算事物,所以我尽量留出一点回旋余地。

    在任何一种情况下,此时您的卷组中都有大约 210GB 的可用空间。现在您可以增加根文件系统的大小:

    • 增加根 LV 的大小:

      # lvresize -L260G /dev/vg_livecd/lv_root
      
    • 增加文件系统的大小:

      # resize2fs /dev/vg_livecd/lv_root
      

    请注意,由于我在此答案中使用的四舍五入,您可能需要使用略小于 260G 的数字。此外,最新版本的 LVM 实用程序包括为您调整文件系统大小的功能,但在这些选项可用之前我就一直在这样做……所以我不能声称确切地知道它们是如何操作的。

    如果我想添加一个专用的 /var 分区,我应该如何在不完全重新安装的情况下进行?

    首先,您可能希望在单用户模式下执行此操作,否则正在运行的进程可能会打开文件以/var使其难以替换。话说回来...

    您将再次需要可用空间。如果您没有在上一步中用完所有可用空间,而是留下几 GB 的可用空间,您可以这样做:

    • 创建一个新的逻辑卷:

      # lvcreate -n lv_var -L 10G /dev/vg0
      
    • 创建一个新的文件系统:

      # mke2fs -j -m0 /dev/vg_livecd/lv_var
      
    • 编辑以通过添加以下行/etc/fstab来挂载新 LV :/var

      /dev/vg_livcde/lv_var /var ext4 defaults 1 2
      

      但是不要安装它!

    • 在方便的地方安装新文件系统:

      # mount /dev/vg_livecd/lv_var /mnt
      
    • 复制以下内容/var:

      # rsync -a /var/ /mnt/
      
    • 重命名/var并/var.old创建一个新目录:

      # mv /var /var.old
      # mkdir /var
      
    • 将你的新 LV 安装在/var:

      # 卸载 /mnt # 挂载 /var

    • 并继续开机。当您对一切正常工作感到满意时,您可以删除/var.old.

    • 5
  2. Silopolis
    2012-08-28T23:48:31+08:002012-08-28T23:48:31+08:00

    考虑到:

    • 丑陋的 VG 名字
    • 您的用例的错误空间分配以及 larsks 详细说明的过程的负担
    • 事实上,如果您不得不重新安装,您必须再次执行所有这些操作

    AFAIC,我会尝试通过 netinstall/kickstart 以一种可复制的方式一次获得所需的配置。

    我的 2cts

    • 1

相关问题

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • 持续监控许多服务器运行状况的简单方法?

  • Hudson 无法在 tomcat5 中启动

  • CentOS 的依赖挑战

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve