未加星标

手把手教你给 CentOS 7 添加硬盘及扩容(LVM)

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏
前言 LVM基本组成

LVM利用linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。 通过LVM,你可以实现存储空间的抽象化并在上面建立虚拟分区(virtual partitions),可以更简便地扩大和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间, without getting caught up in the problems of fdisking a disk that is in use (and wondering whether the kernel is using the old or new partition table) and without having to move other partition out of the way. LVM是用来方便管理的,不会提供额外的安全保证。 However, it sits nicely with the other two technologies we are using.

LVM的基本组成块(building blocks)如下:

物理卷 Physical volume (PV) :可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)。 Think of physical volumes as big building blocks which can be used to build your hard drive.

卷组 Volume group (VG) :将一组物理卷收集为一个管理单元。Group of physical volumes that are used as storage volume (as one disk). They contain logical volumes. Think of volume groups as hard drives.

逻辑卷 Logical volume (LV) :虚拟分区,由物理区域(physical extents)组成。A “virtual/logical partition” that resides in a volume group and is composed of physical extents. Think of logical volumes as normal partitions.

物理区域 Physical extent (PE) :硬盘可供指派给逻辑卷的最小单位(通常为4MB)。A small part of a disk (usually 4MB) that can be assigned to a logical Volume. Think of physical extents as parts of disks that can be allocated to any partition.


手把手教你给 CentOS 7 添加硬盘及扩容(LVM)
LVM 优点

比起正常的硬盘分区管理,LVM更富于弹性:

使用卷组(VG),使众多硬盘空间看起来像一个大硬盘

使用逻辑卷(LV),可以创建跨越众多硬盘空间的分区

可以创建小的逻辑卷(LV),在空间不足时再动态调整它的大小

在调整逻辑卷(LV)大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间

可以在线(online)对逻辑卷(LV)和卷组(VG)进行创建、删除、调整大小等操作,LVM上的文件系统也需要重新调整大小,某些文件系统也支持这样的在线操作。

无需重新启动服务,就可以将服务中用到的逻辑卷(LV)在线(online)/动态(live)迁移至别的硬盘上。

允许创建快照,可以保存文件系统的备份,同时使服务的下线时间(downtime)降低到最小。

添加一块物理硬盘

添加一块硬盘(60GB)到系统中,并让系统识别它,具体步骤参考不重启添加硬盘

使用 fdisk -l 命令查看到这块新盘为 /dev/sdb

[[email protected] ~]# fdisk -l #查看硬盘 磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000dda69 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 41943039 20458496 8e Linux LVM 磁盘 /dev/mapper/centos-root:18.8 GB, 18756927488 字节,36634624 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 对新盘分区

使用 fdisk 命令对新盘进行分区,这里建立了一个主分区 /dev/sdb1 ,大小 8GB,最后使用 partprobe 命令重新读取分区表,命令记录如下:

[[email protected] ~]# fdisk /dev/sdb #对 /dev/sdb 执行分区操作 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x0096d9c0 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):m # 输入 m 获取帮助 命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) 命令(输入 m 获取帮助):n # 输入 n 添加新的物理分区 Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p # 输入 p 选择主分区类型 分区号 (1-4,默认 1): # 默认 起始 扇区 (2048-125829119,默认为 2048): # 默认 将使用默认值 2048 Last 扇区, +扇区 or +size{K,M,G} (2048-125829119,默认为 125829119): # 默认 将使用默认值 125829119 分区 1 已设置为 Linux 类型,大小设为 60 GiB 命令(输入 m 获取帮助):t # 输入 t 修改分区 id 已选择分区 1 Hex 代码(输入 L 列出所有代码):L # 输入 L 查看所有 ID 0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris 1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx 5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据 6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / . 7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具 8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt 9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问 a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC 11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要 16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动 1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep 1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT 1e 隐藏的 W95 FAT1 80 旧 Minix Hex 代码(输入 L 列出所有代码):8e # 输入 8e 修改分区为 Linux LVM 类型 已将分区“Linux”的类型更改为“Linux LVM” 命令(输入 m 获取帮助):w # 输入 w 将修改写入磁盘 The partition table has been altered! Calling ioctl() to re-read partition table. 正在同步磁盘。 # 分区结束 [[email protected] ~]# partprobe # 使用 partprobe 命令重新读取分区表 [[email protected] ~]# fdisk -l # 查看修改后的结果 磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x000dda69 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 41943039 20458496 8e Linux LVM 磁盘 /dev/mapper/centos-root:18.8 GB, 18756927488 字节,36634624 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sdb:64.4 GB, 64424509440 字节,125829120 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0096d9c0 设备 Boot Start End Blocks Id System /dev/sdb1 2048 125829119 62913536 8e Linux LVM [[email protected] ~]# 创建物理卷(PV) [[email protected] ~]# pvdisplay # 创建新物理卷前查看 PV --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size 19.51 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 4994 Free PE 10 Allocated PE 4984 PV UUID ypckOI-BXmZ-J6Cp-jIbY-Gn2m-D7yr-2s1o68 [[email protected] ~]# pvcreate /dev/sdb1 # 创建 PV Physical volume "/dev/sdb1" successfully created. [[email protected] ~]# pvdisplay # 再次查看,可看到新的 PV --- Physical volume --- PV Name /dev/sda2 VG Name centos PV Size 19.51 GiB / not usable 3.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 4994 Free PE 10 Allocated PE 4984 PV UUID ypckOI-BXmZ-J6Cp-jIbY-Gn2m-D7yr-2s1o68 "/dev/sdb1" is a new physical volume of "60.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 60.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID NE729N-o2N6-dc8o-dryH-drZx-ql8c-A9MGlH [[email protected] ~]# 将PV加入卷组(VG) [[email protected] ~]# vgdisplay # 查看卷组,可用 PE 为 10 个 --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.51 GiB PE Size 4.00 MiB Total PE 4994 Alloc PE / Size 4984 / 19.47 GiB Free PE / Size 10 / 40.00 MiB VG UUID pQd8HL-4SpW-36rY-oQoF-wIcL-8vXl-BTjQTz [[email protected] ~]# vgextend centos /dev/sdb1 # 将新的 PV 加入 centos 组卷 Volume group "centos" successfully extended [[email protected] ~]# vgdisplay # 查看 VG 信息,可用 PE 为 15369 个 --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 79.50 GiB PE Size 4.00 MiB Total PE 20353 Alloc PE / Size 4984 / 19.47 GiB Free PE / Size 15369 / 60.04 GiB VG UUID pQd8HL-4SpW-36rY-oQoF-wIcL-8vXl-BTjQTz 创建逻辑卷(LV) [[email protected] ~]# lvdisplay # 先查看 LV 信息 --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID 2Dhfs3-Vl5T-wJft-5KCe-Rhwv-3rmv-olue6A LV Write Access read/write LV Creation host, time node1, 2017-01-05 16:22:47 +0800 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID kzgrfG-vO3b-ehtS-Ydxx-92jK-ol2T-l7NJw7 LV Write Access read/write LV Creation host, time node1, 2017-01-05 16:22:47 +0800 LV Status available # open 1 LV Size 17.47 GiB Current LE 4472 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 [[email protected] ~]# lvcreate -L 40G -n aurthur centos # 创建了一个新的 LV,并起名 aurthur Logical volume "aurthur" created. [[email protected] ~]# lvdisplay # 查看创建新 LV 后的相关信息,多了 /dev/centos/aurthur LV --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID 2Dhfs3-Vl5T-wJft-5KCe-Rhwv-3rmv-olue6A LV Write Access read/write LV Creation host, time node1, 2017-01-05 16:22:47 +0800 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID kzgrfG-vO3b-ehtS-Ydxx-92jK-ol2T-l7NJw7 LV Write Access read/write LV Creation host, time node1, 2017-01-05 16:22:47 +0800 LV Status available # open 1 LV Size 17.47 GiB Current LE 4472 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 --- Logical volume --- LV Path /dev/centos/aurthur LV Name aurthur VG Name centos LV UUID GemtcP-9beI-Cao9-oJ3a-p1oD-ee3e-THh5Bd LV Write Access read/write LV Creation host, time node2, 2017-01-07 21:20:13 +0800 LV Status available # open 0 LV Size 40.00 GiB Current LE 10240 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 [[email protected] ~]# vgdisplay # 查看一下 VG ,可用 PE 仅剩 5129 个 --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 79.50 GiB PE Size 4.00 MiB Total PE 20353 Alloc PE / Size 15224 / 59.47 GiB Free PE / Size 5129 / 20.04 GiB VG UUID pQd8HL-4SpW-36rY-oQoF-wIcL-8vXl-BTjQTz 格式化逻辑卷(LV)并挂载 [[email protected] ~]# mkfs.xfs /dev/centos/aurthur # 格式化新 LV meta-data=/dev/centos/aurthur isize=512 agcount=4, agsize=2621440 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=10485760, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=5120, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 [[email protected] ~]# mkdir /data # 新建挂载点 [[email protected] ~]# mount -t xfs /dev/centos/aurthur /data # 将已格式化的 LV 挂在到 /data 上 [[email protected] ~]# df -Th # 查看挂载后的信息 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 18G 1.5G 17G 9% / devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 8.5M 3.9G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 xfs 497M 169M 329M 34% /boot tmpfs tmpfs 783M 0 783M 0% /run/user/0 /dev/mapper/centos-aurthur xfs 40G 33M 40G 1% /data 设置开机自动挂载

编辑 /etc/fstab 文件,加入一行

/dev/centos/aurthur /data xfs defaults 1 2

用命令查看是否有错

[[email protected] ~]# mount -fav / :已忽略 /boot :已经挂载 swap :已忽略 /data :已经挂载 逻辑卷(LV)扩容 [[email protected] ~]# lvextend -l +100%FREE /dev/centos/aurthur # 用 lvextend 将 /dev/centos/aurthur 所在卷组所有剩余空间都分配给了它 Size of logical volume centos/aurthur changed from 40.00 GiB (10240 extents) to 60.04 GiB (15369 extents). Logical volume centos/aurthur successfully resized. [[email protected] ~]# xfs_growfs /dev/centos/aurthur # 用 xfs_growfs 对扩容后的 LV 进行 xfs 格式大小调整,Centos 6 使用 resize2fs meta-data=/dev/mapper/centos-aurthur isize=512 agcount=4, agsize=2621440 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=10485760, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=5120, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 10485760 to 15737856 [[email protected] ~]# vgdisplay # 查看卷组信息,可用 PE 已经为 0 个 --- Volume group --- VG Name centos System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 2 Act PV 2 VG Size 79.50 GiB PE Size 4.00 MiB Total PE 20353 Alloc PE / Size 20353 / 79.50 GiB Free PE / Size 0 / 0 VG UUID pQd8HL-4SpW-36rY-oQoF-wIcL-8vXl-BTjQTz [[email protected] ~]# lvdisplay # 查看 LV 信息,/dev/centos/aurthur 已扩大为 60.04 G --- Logical volume --- LV Path /dev/centos/swap LV Name swap VG Name centos LV UUID 2Dhfs3-Vl5T-wJft-5KCe-Rhwv-3rmv-olue6A LV Write Access read/write LV Creation host, time node1, 2017-01-05 16:22:47 +0800 LV Status available # open 2 LV Size 2.00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:1 --- Logical volume --- LV Path /dev/centos/root LV Name root VG Name centos LV UUID kzgrfG-vO3b-ehtS-Ydxx-92jK-ol2T-l7NJw7 LV Write Access read/write LV Creation host, time node1, 2017-01-05 16:22:47 +0800 LV Status available # open 1 LV Size 17.47 GiB Current LE 4472 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:0 --- Logical volume --- LV Path /dev/centos/aurthur LV Name aurthur VG Name centos LV UUID GemtcP-9beI-Cao9-oJ3a-p1oD-ee3e-THh5Bd LV Write Access read/write LV Creation host, time node2, 2017-01-07 21:20:13 +0800 LV Status available # open 1 LV Size 60.04 GiB Current LE 15369 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 [[email protected] ~]# df -Th # 查看挂载信息,/data 容量已扩大为 60 G 文件系统 类型 容量 已用 可用 已用% 挂载点 /dev/mapper/centos-root xfs 18G 1.5G 17G 9% / devtmpfs devtmpfs 3.9G 0 3.9G 0% /dev tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs tmpfs 3.9G 8.5M 3.9G 1% /run tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 xfs 497M 169M 329M 34% /boot tmpfs tmpfs 783M 0 783M 0% /run/user/0 /dev/mapper/centos-aurthur xfs 61G 33M 60G 1% /data

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

主题: 硬盘LinuxLV虚拟化Linux内核数据UFSGIBM删除
分页:12
转载请注明
本文标题:手把手教你给 CentOS 7 添加硬盘及扩容(LVM)
本站链接:http://www.codesec.net/view/522452.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(73)