- Linux 系统管理员教程
- 首页
- CentOS概述
- 基本的 CentOS Linux 命令
- 文件/文件夹管理
- 用户管理
- 配额管理
- Systemd 服务启动和停止
- 使用 systemctl 进行资源管理
- 使用 crgoups 进行资源管理
- 进程管理
- 防火墙设置
- 在 CentOS Linux 中配置 PHP
- 使用 CentOS Linux 设置 Python
- 在 CentOS Linux 中配置 Ruby
- 为 CentOS Linux 设置 Perl
- 安装和配置 Open LDAP
- 创建 SSL 证书
- 安装 Apache Web 服务器 CentOS 7
- 在 CentOS 7 上设置 MySQL
- 设置 Postfix MTA 和 IMAP/POP3
- 安装匿名 FTP
- 远程管理
- CentOS 中的流量监控
- 日志管理
- 备份和恢复
- 系统更新
- Shell 脚本
- 软件包管理
- 卷管理
- Linux 系统管理员有用资源
- Linux 系统管理员 - 快速指南
- Linux 系统管理员 - 有用资源
- Linux 系统管理员 - 讨论
Linux 系统管理员 - 卷管理
逻辑卷管理 (LVM) 是 Linux 用于管理跨不同物理硬盘的存储卷的一种方法。这与 RAID 不同。但是,可以将其视为与 RAID 0 或 J-Bod 类似的概念。使用 LVM,可以(例如)拥有三个 1TB 的物理磁盘,然后创建一个大约 3TB 的逻辑卷,例如 /dev/sdb。甚至可以创建两个 1.5TB 的逻辑卷、5 个 500GB 的逻辑卷,或任何组合。一个磁盘甚至可以用于逻辑卷的快照。
注意 − 正确配置后,使用逻辑卷实际上会增加磁盘 I/O。这与 RAID 0 将数据跨多个磁盘条带化的方式类似。
在学习使用 LVM 进行卷管理时,如果我们了解 LVM 中每个组件是什么,会更容易。请研究下表以牢固掌握每个组件。如有必要,可以使用 Google 进行学习。了解逻辑卷的每个部分对于管理它们非常重要。
PV | 物理卷 | sda |
PP | 物理分区 | sda1 , sda2 |
VG | 卷组 | 合并的物理资源 |
LV | 逻辑卷 | 被操作系统视为存储设备 |
物理卷 将显示为 /dev/sda、/dev/sdb;Linux 检测到的物理磁盘。
物理分区 将是磁盘实用程序(如 fdisk)分区的磁盘的一部分。请记住,在大多数常见的 LVM 设置中不建议使用物理分区。例如:磁盘 /dev/sda 被分区以包含两个物理分区:/dev/sda1 和 /dev/sda1
如果我们有两个 1TB 的物理磁盘,我们可以在这两个磁盘之间创建一个接近 2TB 的卷组。
从卷组中,我们可以创建三个逻辑卷,每个逻辑卷的大小不超过卷组的总大小。
传统的 Linux 磁盘管理工具
在熟悉 CentOS 7 中用于 LVM 管理的最新且功能最强大的工具之前,我们应该首先探索更多传统上用于 Linux 磁盘管理的工具。这些工具会派上用场,并且仍然可以与当今的先进 LVM 工具(如系统存储管理器:lsblk、parted 和 mkfs.xfs)一起使用。
现在,假设我们向系统添加了另一个或两个磁盘,我们需要枚举 Linux 检测到的磁盘。我始终建议在执行被视为破坏性操作之前每次都枚举磁盘。lsblk 是获取磁盘信息的绝佳工具。让我们看看 CentOS 检测到哪些磁盘。
[root@localhost rdc]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 6G 0 disk sdc 8:32 0 4G 0 disk sr0 11:0 1 1024M 0 rom
如您所见,此系统上有三个磁盘:sda、sdb 和 sdc。
磁盘 sda 包含我们正在使用的 CentOS 安装,因此我们不想乱动 sda。sdb 和 sdc 都已添加到系统中以用于本教程。让我们使这些磁盘可供 CentOS 使用。
创建磁盘标签
[root@localhost rdc]# parted /dev/sdb mklabel GPT Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? Yes [root@localhost rdc]#
我们现在有一个磁盘已标记。只需以相同的方式在sdc 上运行parted 命令即可。
在磁盘上创建分区
我们每个磁盘只创建一个分区。要创建分区,再次使用parted 命令。
[root@localhost rdc]# parted -a opt /dev/sdb mkpart primary ext4 0% 100%
警告 − 您请求从 0.00B 到 6442MB(扇区 0..12582911)的分区。
我们可以管理的最接近的位置是 17.4kB 到 1048kB(扇区 34..2047)。
您是否仍然接受此操作?
是/否? 否
[root@localhost rdc]# parted -a opt /dev/sdc mkpart primary ext4 0% 100%
信息 − 您可能需要更新 /etc/fstab。
[root@localhost rdc]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part / boot └─sda2 8:2 0 19G 0 part ├─cl-root 253:0 0 17G 0 lvm / └─cl-swap 253:1 0 2G 0 lvm [SWAP] sdb 8:16 0 6G 0 disk └─sdb1 8:17 0 6G 0 part sdc 8:32 0 4G 0 disk └─sdc1 8:33 0 4G 0 part sr0 11:0 1 1024M 0 rom [root@localhost rdc]#
如您从 lsblk 输出中所见,我们现在有两个分区,每个分区都在 sdb 和 sdc 上。
创建文件系统
最后,在挂载和使用任何卷之前,我们需要添加一个文件系统。我们将使用 XFS 文件系统。
root@localhost rdc]# mkfs.xfs -f /dev/sdb1 meta-data = /dev/sdb1 isize = 512 agcount = 4, agsize = 393088 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0, sparse = 0 data = bsize = 4096 blocks = 1572352, imaxpct = 25 = sunit = 0 swidth = 0 blks naming = version 2 bsize = 4096 ascii-ci = 0 ftype = 1 log = internal log bsize = 4096 blocks = 2560, version = 2 = sectsz = 512 sunit = 0 blks, lazy-count = 1 realtime = none extsz = 4096 blocks = 0, rtextents = 0 [root@localhost rdc]# mkfs.xfs -f /dev/sdc1 meta-data = /dev/sdc1 isize = 512 agcount = 4, agsize = 262016 blks = sectsz = 512 attr = 2, projid32bit = 1 = crc = 1 finobt = 0, sparse = 0 data = bsize = 4096 blocks = 1048064, imaxpct = 25 = sunit = 0 swidth = 0 blks naming = version 2 bsize = 4096 ascii-ci = 0 ftype = 1 log = internal log bsize = 4096 blocks = 2560, version = 2 = sectsz = 512 sunit = 0 blks, lazy-count = 1 realtime = none extsz = 4096 blocks = 0, rtextents = 0 [root@localhost rdc]#
让我们检查一下以确保每个卷都有一个可用的文件系统。
[root@localhost rdc]# lsblk -o NAME,FSTYPE NAME FSTYPE sda ├─sda1 xfs └─sda2 LVM2_member ├─cl-root xfs └─cl-swap swap sdb └─sdb1 xfs sdc └─sdc1 xfs sr0 [root@localhost rdc]#
每个卷现在都使用 XFS 文件系统。让我们挂载它们,检查挂载点,并将文件复制到每个卷。
[root@localhost rdc]# mount -o defaults /dev/sdb1 /mnt/sdb [root@localhost rdc]# mount -o defaults /dev/sdc1 /mnt/sdc [root@localhost ~]# touch /mnt/sdb/myFile /mnt/sdc/myFile [root@localhost ~]# ls /mnt/sdb /mnt/sdc /mnt/sdb: myFile /mnt/sdc: myFile
此时,我们有两个可用的磁盘。但是,只有在我们手动挂载它们时,它们才能使用。要挂载每个磁盘以在启动时使用,我们必须编辑fstab 文件。此外,必须为需要访问新磁盘的组设置权限。
创建卷组和逻辑卷
CentOS 7 最棒的改进之一是包含了一个名为系统存储管理器或ssm 的实用程序。系统存储管理器极大地简化了在 Linux 上管理 LVM 池和存储卷的过程。
我们将逐步介绍在 CentOS 中创建简单卷池和逻辑卷的过程。第一步是安装系统存储管理器。
[root@localhost rdc]# yum install system-storage-manager
让我们使用ssm list 命令查看我们的磁盘。
如上所示,系统上安装了总共三个磁盘。
/sdba1 − 托管我们的 CentOS 安装
/sdb1 − 挂载到 /mnt/sdb
/sdc1 − 挂载到 /mnt/sdc
我们要做的是使用两个磁盘(sdb 和 sdc)创建一个卷组。然后使三个 3GB 的逻辑卷可供系统使用。
让我们创建卷组。
[root@localhost rdc]# ssm create -p NEW_POOL /dev/sdb1 /dev/sdc1
默认情况下,ssm 将创建一个扩展整个池 10GB 的单个逻辑卷。我们不希望这样做,因此让我们将其删除。
[root@localhost rdc]# ssm remove /dev/NEW_POOL/lvol001 Do you really want to remove active logical volume NEW_POOL/lvol001? [y/n]: y Logical volume "lvol001" successfully removed [root@localhost rdc]#
最后,让我们创建三个逻辑卷。
[root@localhost rdc]# ssm create -n disk001 --fs xfs -s 3GB -p NEW_POOL [root@localhost rdc]# ssm create -n disk002 --fs xfs -s 3GB -p NEW_POOL [root@localhost rdc]# ssm create -n disk003 --fs xfs -s 3GB -p NEW_POOL
现在,让我们检查新卷。
我们现在有三个独立的逻辑卷跨两个物理磁盘分区扩展。
逻辑卷是现在内置于 CentOS Linux 中的一项强大功能。我们已经触及了管理它们的表面。掌握池和逻辑卷需要实践和从 Tutorials Point 进行扩展学习。目前,您已经学习了 CentOS 中 LVM 管理的基础知识,并且能够在单个主机上创建基本的条带化逻辑卷。