使用 LVM 添加磁盘

oin*_*ink 28 partitioning lvm hard-drive system-installation 14.04

我相信这已经回答过的地方就在这里(我甚至发现还挺指导这里,但似乎有点参差不齐和不完全的),但我想知道,如果有人可以帮助我,或至少点我在正确的方向完成我正在尝试的工作。

基本上我在 20GB 磁盘上安装了 Ubuntu 14.04(通过“引导 - 使用整个磁盘并设置 LVM”)。然后我在机器上物理添加了一个干净的 80GB 磁盘,它检测为“sdb”。

基本上我的问题是,我希望能够将新磁盘 (80GB) 中分配的空间量添加/组合到我的机器上,这样它就不会显示两个驱动器(20GB 和 80GB),而是只显示一个驱动器(100GB) . 我不担心 RAID 或任何其他特殊附加组件。

我对 Linux 有点陌生,但明白我需要使用 LVM 来完成这个。

如果有人可以帮助我或将我链接到有用的指南/教程,将不胜感激!不确定是否需要,但这是我的“fdisk -l”和“/etc/fstab”输出:

fdisk 输出(缩短):

Disk /dev/sda: 21.5 GB, 21474836480 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1    *       2048      499711      248832   83  Linux
/dev/sda2          501758    41940991    20719617    5  Extended
/dev/sda5          501760    41940991    20719616   8e  Linux LVM

Disk /dev/sdb: 85.9 GB, 85899345920 bytes
Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/mapper/ubuntu--vg-root: 20.4 GB, 20392706048 bytes
Disk /dev/mapper/ubuntu--vg-root doesn't contain a valid partition table

Disk /dev/mapper/ubuntu--vg-swap_1: 801 MB, 801112064 bytes
Disk /dev/mapper/ubuntu--vg-swap_1 doesn't contain a valid partition table
Run Code Online (Sandbox Code Playgroud)

/etc/fstab(缩短):

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=26710773-7a64-4f34-a34e-0057cb1739d7 /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0
Run Code Online (Sandbox Code Playgroud)

oin*_*ink 55

在查看了网上随机指南和教程的组合后,我能够成功地将一个磁盘添加到我的 Ubuntu Server 14.04 机器上,并进行了基本设置,因此我将多个硬盘驱动器显示为一个驱动器。为此,我使用了 LVM。

为了帮助任何可能在某个时候想要这样做的人,我将在这里发布我所做的。


这些步骤假设您基本上是从头开始,除了已经在您的机器上安装了 Ubuntu(通过“引导 - 使用整个磁盘和设置 LVM”),并物理添加了额外的磁盘。如果您在机器上有现有数据,这些步骤可能会起作用,但我不能确定这样做是否安全。

这些命令假定以下信息,并且会因您的设置而异:

  • 您的新磁盘是“sdb”
    • 这可以通过运行找到 ls /dev/sd*
  • 您的卷组名称是“ubuntu-vg”
    • 这可以通过运行找到 vgdisplay
  • 您的逻辑卷路径是“/dev/ubuntu-vg/root”
    • 这可以通过运行找到 lvdisplay
  • 你的新磁盘是 20GB
    • 希望你知道磁盘有多大。

  1. 安装逻辑卷管理器(您可能需要也可能不需要这样做)。

    sudo apt-get install system-config-lvm
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将新磁盘转换为物理卷(在这种情况下,新磁盘是“sdb”)。

    sudo pvcreate /dev/sdb
    
    Run Code Online (Sandbox Code Playgroud)
  3. 通过“vgextend”将物理卷添加到卷组。

    sudo vgextend ubuntu-vg /dev/sdb
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将物理卷分配给逻辑卷(通过新磁盘大小扩展卷大小)。

    sudo lvextend -l +100%FREE /dev/ubuntu-vg/root
    
    Run Code Online (Sandbox Code Playgroud)
  5. 调整逻辑卷上的文件系统大小,使其使用额外的空间。

    sudo resize2fs /dev/ubuntu-vg/root
    
    Run Code Online (Sandbox Code Playgroud)

那应该这样做。五个简单的步骤!您也不必重新启动。只需运行df -h,您的新磁盘空间应该显示已正确分配,并且您可能正在运行的任何 web 应用程序都将获取新的磁盘空间量。

  • 您可以使用 `lvextend -l +100%FREE` 扩展以使用所有可用空间,而不是 `lvextend -L+20G` (2认同)
  • 请注意,Ubuntu 服务器似乎默认为 /dev/ubuntu-vg/ubuntu-lv 的逻辑卷路径,而不是 /dev/ubuntu-vg/root。因此,请检查 `sudo lvdisplay` 或 `ls /dev/ubuntu-vg/`。例如,我必须在第 4 步中使用它:`sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv` (2认同)