2024年1月17日发(作者:)
Linux6.4硬盘扩容LVM逻辑卷管理操作手册
1. 对新增加的硬盘进行分区、格式化
1.1. 用root用户登录系统
使用SSH客户端登录Linux服务器。
1.2. 查看挂载情况(此步可省略)
(加上-T这个参数,就可以列出所有系统挂载的分区的文件类型信息)
[root@servername ~]# df -lh
文件系统容量已用可用已用%% 挂载点
/dev/sda3 95G 4.0G 86G 5% /
tmpfs 3.9G 72K 3.9G 1% /dev/shm
/dev/sda1 388M 37M 331M 10% /boot
[root@servername ~]#
1.3. 查看磁盘情况(此步不建议省略)
下方红色字为要创建分区的硬盘。
[root@servername ~]# fdisk -l
Disk /dev/sda: 107.4 GB, 1 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bf627
Device Boot Start End Blocks Id System
/dev/sda1 * 1 52 409600 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 52 574 4194304 82 Linux swap
/ Solaris
Partition 2 does not end on cylinder boundary.
-1-
/dev/sda3 574 13055 100252672 83 Linux
Disk /dev/sdb: 1073.7 GB, 1 bytes
255 heads, 63 sectors/track, 130541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
[root@servername ~]#
1.4. 创建分区
下方红色字为要创建分区的硬盘注意跟上面查看到的要对应。
[root@servername ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x883e515a.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n 新增加一个分区
Command action
e extended
p primary partition (1-4)
p分区类型我们选择为主分区
Partition number (1-4): 1分区编号选1,如果被占依此类推
First cylinder (1-130541, default 1): 按回车默认(起始扇区)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130541, default 130541): 按回车默认(结束扇区)也可以使用+100M即创建100M的分区 也可以使用(K,M,G)
Using default value 130541
Command (m for help): w写分区表(可以输入t进行分区格式调整,见1.6调整分区格式)
The partition table has been altered!
-2-
Calling ioctl() to re-read partition table.
Syncing disks.
[root@servername ~]#
1.5. 重新查看磁盘情况(此步可省略)
下方红色字为新创建的磁盘分区信息。
[root@servername ~]# fdisk -l
Disk /dev/sda: 107.4 GB, 1 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000bf627
Device Boot Start End Blocks Id System
/dev/sda1 * 1 52 409600 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 52 574 4194304 82 Linux swap
/ Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3 574 13055 100252672 83 Linux
Disk /dev/sdb: 1073.7 GB, 1 bytes
255 heads, 63 sectors/track, 130541 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x883e515a
Device Boot Start End Blocks Id System
/dev/sdb1 1 130541 1048570551 83 Linux
[root@servername ~]#
1.6. 调整分区格式(可以跟创建分区合并执行)
我们的新建分区,却不是LVM的。所以,接下来使用fdisk将其改成LVM的,使用LVM逻辑卷管理可以方便以后扩容。
-3-
[root@servername ~]# fdisk /dev/sdb
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): t修改分区类型
Selected partition 1选分区1(与上面新创建的分区要对应)
Hex code (type L to list codes): 8e修改为LVM类型(8e就是LVM)
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w写分区表
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@servername ~]#
1.7. 重启服务器
[root@servername ~]# reboot
Broadcast message from root@servername
(/dev/pts/0) at 15:30 ...
The system is going down for reboot NOW!
[root@servername ~]#
1.8. 分区格式化
下方红色字为要格式化的分区,要与上面新创建分区的对应。(如果不确定可以执行fdisk -l查看磁盘情况,见1.5重新查看磁盘情况)
[root@servername ~]# 4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536000 inodes, 262142637 blocks
-4-
13107131 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
8000 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616,
78675968,
102400000, 214990848
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@servername ~]#
2. 创建LVM卷组分区添加到卷组创建卷实现扩容
2.1. 硬盘分区初始化为物理卷
pvcreate指令用于将物理硬盘分区初始化为物理卷,以便被LVM使用。
下方红色字为要初始化为物理卷的分区,要与上面新创建分区的对应。
[root@servername ~]# lvm
lvm>pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
lvm>
2.2. 创建逻辑卷组
vgcreate 命令执行几个操作。除了创建 "company" 卷组以外,它还设置-5-
/dev/sdb1,使它使用32 MB 的范围,并将引导的最大逻辑卷大小增加到2 TB(默认4M最大支持256G)
下方红色字为要创建逻辑卷组的物理分区,要与上面新创建分区的对应,蓝色字为要创建的卷组名。
lvm>vgcreate -s 32M company/dev/sdb1
Volume group "company" successfully created
lvm>
2.3. 激活分区(默认激活)
lvm>vgchange -a y company
0 logical volume(s) in volume group "company" now active
2.4. 将分区加入到逻辑卷组
lvm>vgextend company/dev/sdb1
Physical volume '/dev/sdb1' is already in volume group 'company'
Unable to add physical volume '/dev/sdb1' to volume group 'company'.
2.5. 创建逻辑卷
在最初时将它的大小设置为4.96G,并称它作 "data",最后要跟着逻辑卷组名。
下方蓝色字为新创建的卷组名,橘黄色为要创建的逻辑卷,红色字为要创建的逻辑卷大小(注意如分配了5G的硬盘空间可能只能创建4.96G逻辑卷大小,此处需要一点点试直到创建成功)。
进行一点点减少容量尝试创建(比较space (31999 extents): 34359 required.差距然后减少创建的容量,直到出现“Logical volume "data" created”表示创建成功)。
lvm>lvcreate -L 1073.7G -n datacompany
Rounding up size to full physical extent 1.05 TiB
Volume group "company" has insufficient free space (31999 extents): 34359
required.
lvm>lvcreate -L 1.05T -n datacompany
Rounding up size to full physical extent 1.05 TiB
-6-
Volume group "company" has insufficient free space (31999 extents): 34407
required.
lvm>lvcreate -L 0.98T -n datacompany
Rounding up size to full physical extent 1003.53 GiB
Volume group "company" has insufficient free space (31999 extents): 32113
required.
lvm>lvcreate -L 0.97T -n datacompany
Rounding up size to full physical extent 993.28 GiB
Logical volume "data" created
lvm>
2.6. 退出LVM管理
lvm>quit退出LVM管理
Exiting.
2.7. 格式化文件系统
以上只是卷扩容了,下面是文件系统的真正扩容
格式化为EXT4文件系统
[root@servername ~]# 4 /dev/company/data
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65101824 inodes, 260382720 blocks
13019136 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
7947 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632,
2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616,
78675968,
102400000, 214990848
-7-
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@servername ~]#
3. 挂载分区及配置开机自动挂载
3.1. 创建临时文件夹挂载文件夹
[root@servername ~]# mkdir /webdata
[root@servername ~]# mount /dev/company/data/webdata
[root@servername ~]#
3.2. 查看创建结果
[root@servername ~]# df -h
文件系统容量已用可用已用%% 挂载点
/dev/sda3 95G 4.0G 86G 5% /
tmpfs 3.9G 72K 3.9G 1% /dev/shm
/dev/sda1 388M 37M 331M 10% /boot
/dev/mapper/company-data
978G 200M 928G 1% /webdata
[root@servername ~]#
3.3. 配置开机自动挂载
然后,应该设置服务器以使我的新 /webdata分区可以在每次启动机器时使用。首先修改 /etc/fstab 以使它包括新的 /webdata项:
下方红色字为要添加的内容。
[root@servername ~]# vi /etc/fstab
#
-8-
# /etc/fstab
# Created by anaconda on Tue Mar 25 13:20:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=0fcfd8a1-056e-4948-9fb2-ec34ffd3f7bf / ext4
defaults 1 1
UUID=eed74f6a-dad2-450a-af47-7abb2889c085 /boot
ext4 defaults 1 2
UUID=efe0bafa-4893-415c-9ee2-d0dcd349d547 swap
swap defaults 0 0
tmpfs /dev/shm tmpfs defaults
0 0
devpts /dev/pts devpts
gid=5,mode=620 0 0
sysfs /sys sysfs defaults
0 0
proc /proc proc defaults
0 0
/dev/company/data /webdata ext4 defaults 1 2
~
~
~
~
~
"/etc/fstab" 16L, 868C written
[root@servername ~]#
保存退出。(注:i插入;Esc退出编辑模式;:wq保存退出)
3.4. 重启计算机试效果
[root@servername ~]# reboot
Broadcast message from root@servername
(/dev/pts/0) at 18:08 ...
The system is going down for reboot NOW!
[root@servername ~]#
-9-
4. 原文件迁移到新创建分区
把系统降低到运行级别 1 以确保在复制 /usr/local中的文件时,没有用户或进程能够访问或修改它们(注:root单用户模式只能在服务器本机操作)
[root@was ~]# init 1
[root@was ~]#
然后,开始复制文件(用root在服务器本机操作):
# cp -avx /usr/local/* /tomcat
复制操作需要大约 10 分钟的时间完成。然后将原始 /home 备份成
/,这只是为在复制过程中有任何错误而准备的。创建一个新的安装点,然后在 /home 上重新安装新 home:
# cd /usr
# mv local local_old
# mkdir local
# umount /tomcat
# mount /dev/company/data /usr/local
回到图形页面。
[root@was usr]# init 5
这样,扩容就完成了,再总结一下过程:
VMWare扩展硬盘空间->Linux下分区、格式化->LVM卷管理->使文件系统生效
-10-
5. 为VMware下的Linux增加硬盘空间
本章为拷贝内容未做测试整理,只用于了解操作步骤。
现在使用VMWare的朋友应该很多了,特别是用VMWare安装Linux操作系统的。匆匆忙忙安装之后,某天突然发现虚拟机硬盘不够用了,怎么办?
不必慌张,因为你的慌张,正说明了你可能不太熟悉Linux都自带的LVM(Logical Volume Manager,逻辑卷管理),而且更大的可能是,你的Linux已经在使用LVM了。输入命令:
df -h
文件系统 容量 已用可用已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
28G 6.2G 20G 25% /
/dev/sda1 99M 26M 68M 28% /boot
tmpfs 506M 0 506M 0% /dev/shm
如果看到了Vol字样,说明你最好要继续阅读本文,按下面的操作,你可以让根分区的总空间从28G变成58G,从头到尾都不必使用mount命令,更不用修改/etc/fstab,你的硬盘看起来是自己在长大一样。
一、扩展VMWare硬盘空间
关闭Vmware 的 Linux系统,这样,才能在VMWare菜单中设置:
VM -> -> Hardware -> Hard Disk -> Utilities -> Expand
输入你想要扩展到多少G。本文假设你新增加了 30G
二、对新增加的硬盘进行分区、格式化
这里进行一个极简化的介绍,非常简化,但很全面,上面已经知道增加了空间的硬盘是 /dev/sda。
分区:
fdisk /dev/sda 操作 /dev/sda 的分区表
p 查看已分区数量(我看到有两个 /dev/sda1 /dev/sda2)
n 新增加一个分区
p 分区类型我们选择为主分区
3 分区号选3(因为1,2已经用过了,见上)
回车 默认(起始扇区)
回车 默认(结束扇区)
t 修改分区类型
3 选分区3
8e 修改为LVM(8e就是LVM)
w 写分区表
可能,系统提示你重启,但你可以不重启,输入命令:
partprobe
格式化:
4 /dev/sda3
三、添加新LVM到已有的LVM组,实现扩容
lvm 进入lvm管理
-11-
lvm>pvcreate /dev/sda3 这是初始化刚才的分区,必须的
lvm>vgextend VolGroup00 /dev/sda3 将初始化过的分区加入到虚拟卷组VolGroup00
lvm>lvextend -L +29.3G /dev/VolGroup00/LogVol00 扩展已有卷的容量(29.3G这个数字在后面解释)
lvm>pvdisplay
查看卷容量,这时你会看到一个很大的卷了
lvm>quit
可以收工了
上面那个 29.3G 怎么来的呢?因为你在VMWare新增加了30G,但这些空间不能全被LVM用了,你可以在上面的lvextend操作中一个一个的试探,比如
29.9G, 29.8G ... 直到不报错为止,这样你就可以充分使用新增加的硬盘空间了,当然这是因为我不懂才用的笨办法,高手笑笑就过了吧。
以上只是卷扩容了,下面是文件系统的真正扩容,输入以下命令:
4 /dev/VolGroup00/LogVol00
这样,扩容就完成了,再总结一下过程:
VMWare扩展硬盘空间->Linux下分区、格式化->LVM卷管理->使文件系统生效
6. 常见操作
6.1. VMware虚拟机加硬盘方式扩容
为VMware添加虚拟硬盘。
1、
关闭正在运行的虚拟系统。
-12-
2、
-13-
3、
4、
-14-
5、
6、
-15-
7、
其他【创建虚拟硬盘】操作方法(未测试):
1、关闭VM中正在运行的虚拟系统;
2、在虚拟系统名称上点右键-》Virtual Machine Settings;
3、在Hardware页点“Add”-》Add a hard disk-》Create a new virtual disk-》SCSI(recommended)-》分配空间大小-》OK;
4、可以看见Hardware中出现了一块新的硬盘Hard Disk 2。
其他【扩展虚拟硬盘】操作方法(未测试):
1、关闭Vmware 的 Linux系统,这样,才能在VMWare菜单中设置:
2、VM -> -> Hardware -> Hard Disk -> Utilities -> Expand
3、输入你想要扩展到多少G。本文假设你新增加了 30G
6.2. VMware虚拟机原有硬盘扩容
-16-
6.3. LVM优点
虽然到 LVM 的转换有些痛苦,但一旦转换完成之后,管理文件系统就变得非常简单。例如,决定重新调整新的 /home 逻辑卷大小,向文件系统结尾添加大约 2 GB 的空间。首先,向 "lv_home" 逻辑卷添加了额外的容量,然后使用
resize_reiserfs 实用程序来扩充文件系统,使它可以使用额外的容量。以下是执行所有这些操作的两个命令:
# lvextend -L+2G /dev/main/lv_home
# resize_reiserfs -f /dev/main/lv_home
在大约一秒钟的时间里,将 /home 文件系统扩大了 2 GB;令人惊奇的是不需要重新引导、降低到运行级别 1,甚至不需要卸装 /home 来执行大小调整。一切都照常工作。是不是很了不起?下面是文件系统的当前状态:
# df
-17-
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hda3 9765200 1413340 8351860 15% /
/dev/main/lv_home 10485436 5609836 4875600 54% /home
您可以看出 LVM 的确可以让管理员的工作轻松许多。能将根文件系统的其它部分转移到 LVM,最终甚至将根文件系统转换成 LVM 逻辑卷。
6.4. LVM卷组相关说明
创建卷组创建卷组的命令为vgcreate,将使用pvcreate建立的物理卷创建为一个完整的卷组:
# vgcreate web_document /dev/hda5 /dev/hdb
vgcreate命令第一个参数是指定该卷组的逻辑名:web_document。后面参数是指定希望添加到该卷组的所有分区和磁盘。vgcreate在创建卷组
web_document 以外,还设置使用大小为4 MB的PE(默认为4MB),这表示卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减。由于内核原因,PE大小决定了逻辑卷的最大大小,4 MB 的PE决定了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷则创建卷组时指定更大的PE。PE大小范围为8 KB 到 512 MB,并且必须总是 2 的倍数(使用-s指定,具体请参考man vgcreate)。
32 MB 是个合适的范围大小,因为 32 MB 的颗粒度仍然便于管理,并将引导的最大逻辑卷大小增加到 2 TB。创建卷组之后,可以通过输入 "vgdisplay" 来查看其信息。
vgcreate 命令执行几个操作。除了创建 "company" 卷组以外,它还设置
/dev/sdb1,使它使用32 MB 的范围,并将引导的最大逻辑卷大小增加到2 TB(默认4M最大支持256G)
-18-


发布评论