【ECS最佳实践】基于多块云盘构建LVM逻辑卷

一、LVM简介

  LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。

  LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。如果期望扩容云盘的IO能力,则可以通过将多块容量相同的云盘做RAID0。

图1:LVM逻辑示意图

二、创建LVM卷

2.1步骤一 创建物理卷PV

  如下以5块云盘通过LVM创建弹性可扩展逻辑卷为例。

root@lvs06:~# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    252:0    0  40G  0 disk
└─vda1 252:1    0  40G  0 part /
vdb    252:16   0   1T  0 disk
vdc    252:32   0   1T  0 disk
vdd    252:48   0   1T  0 disk
vde    252:64   0   1T  0 disk
vdf    252:80   0   1T  0 disk
  • step1: 以root账号登录云服务器
  • step2:执行以下命令,为云盘创建PV卷
pvcreate <磁盘路径1> ... <磁盘路径N>

说明:此处需要填写云盘的设备名称,如果需要添加多个云盘,则可以添加多云盘设备名称,中间以空格间隔。如下以/dev/vdb, /dev/vdc,/dev/vdd,/dev/vde,/dev/vdf为例,执行结果如下:

root@lvs06:~# pvcreate  /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdfPhysical volume "/dev/vdb" successfully created.Physical volume "/dev/vdc" successfully created.Physical volume "/dev/vdd" successfully created.Physical volume "/dev/vde" successfully created.Physical volume "/dev/vdf" successfully created.
  • step3:执行以下命令,查看该服务器上物理卷(PV)信息:
lvmdiskscan | grep LVM

执行结果如下:

root@lvs06:~# lvmdiskscan | grep LVM/dev/vdb  [       1.00 TiB] LVM physical volume/dev/vdc  [       1.00 TiB] LVM physical volume/dev/vdd  [       1.00 TiB] LVM physical volume/dev/vde  [       1.00 TiB] LVM physical volume/dev/vdf  [       1.00 TiB] LVM physical volume5 LVM physical volume whole disks0 LVM physical volumes

2.2步骤二 创建卷组(VG)

  • step1:执行以下命令,创建卷组(VG)
vgcreate <卷组名> <物理卷路径1>……<物理卷路径N>

执行结果如下:

root@lvs06:~# vgcreate lvm_01  /dev/vdb  /dev/vdc /dev/vdd /dev/vde /dev/vdfVolume group "lvm_01" successfully created

说明

1.卷组名:该参数可自定义2.物理卷路径:此处填写云盘的物理卷名称,多个物理卷直接以空格间隔3.当提示 “Volume group XXX successfully created”标识卷组创建成功;

- step2:执行以下命令,可以向卷组(VG)中添加物理卷(PV)

vgextend 卷组名称  <物理卷路径1>……<物理卷路径N>

如下,向卷组(VG)lvm_01中添加一块新的物理卷:

root@lvs06:~# pvcreate /dev/vdgPhysical volume "/dev/vdg" successfully created.
root@lvs06:~# vgextend  lvm_01  /dev/vdgVolume group "lvm_01" successfully extended
  • step3:创建卷组(VG)成功后,可通过vgs,vgdisplay命令查看卷组信息
root@lvs06:~# vgsVG     #PV #LV #SN Attr   VSize  VFreelvm_01   6   0   0 wz--n- <6.00t <6.00t

2.3步骤三 创建逻辑卷(LV)

  • step1:执行以下命令创建逻辑卷(LV)
lvcreate [-L <逻辑卷大小>][ -n <逻辑卷名称>] <卷组名称>

参数说明

1.逻辑卷大小:逻辑卷的大小应小于卷组(VG)剩余可用空间,单位可以选择MB、GB或者TB
2.逻辑卷名称:可自定义
3.卷组名称:此处填写逻辑卷所在的卷组名称

本文以创建1个4TB的逻辑卷(LV)为例,执行结果如下:

root@lvs06:~# lvcreate -L 5T -n lv01 lvm_01Logical volume "lv01" created.
  • step2:执行lvdisplay命令查看,逻辑卷详细信息:
root@lvs06:~# lvdisplay--- Logical volume ---LV Path                /dev/lvm_01/lv01LV Name                lv01VG Name                lvm_01LV UUID                svB00x-l6Ke-ES6M-ctsE-9P6d-dVj2-o0h3KzLV Write Access        read/writeLV Creation host, time lvs06, 2019-06-06 15:27:19 +0800LV Status              available# open                 0LV Size                5.00 TiBCurrent LE             1310720Segments               6Allocation             inheritRead ahead sectors     auto- currently set to     256Block device           253:0

2.4步骤四 创建并挂载文件系统

  • step1:执行以下命令,在创建好的逻辑卷(LV)上创建文件系统
mkfs.文件系统格式  逻辑卷路径

针对上一步中的逻辑卷创建ext4文件系统,执行结果如下:

root@lvs06:~# mkfs.ext4  /dev/lvm_01/lv01
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 1342177280 4k blocks and 167772160 inodes
Filesystem UUID: 2529002f-9209-4b6a-9501-106c1145c77f
Superblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000, 214990848, 512000000, 550731776, 644972544Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information:
done
  • step2:执行以下命令挂载文件系统:
mount  逻辑卷路径   挂载点

执行结果如下:

root@lvs06:~# mount  /dev/lvm_01/lv01  /media/lv01
root@lvs06:~# df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                      12G     0   12G   0% /dev
tmpfs                    2.4G  3.7M  2.4G   1% /run
/dev/vda1                 40G  3.6G   34G  10% /
tmpfs                     12G     0   12G   0% /dev/shm
tmpfs                    5.0M     0  5.0M   0% /run/lock
tmpfs                     12G     0   12G   0% /sys/fs/cgroup
tmpfs                    2.4G     0  2.4G   0% /run/user/0
/dev/mapper/lvm_01-lv01  5.0T   89M  4.8T   1% /media/lv01

三、进阶场景

3.1扩展逻辑卷以及系统容量

  • Step1:执行以下命令,可扩展逻辑卷的容量
lvextend [-L +/- <增减容量>] <逻辑卷路径>

参数说明

1.增减容量:当卷组中可剩余容量时 ,可以执行扩容逻辑卷操作。扩容逻辑卷之后还需要扩容对应的文件系统才能生效;
2.逻辑卷路径:此处填写带扩容的逻辑卷路径

如下针对/dev/lvm_01/lv01 卷再扩容500GB物理空间,执行结果如下:

root@lvs06:~# lvextend -L +500GB /dev/lvm_01/lv01
Size of logical volume lvm_01/lv01 changed from 5.00 TiB (1310720 extents) to <5.49 TiB (1438720 extents).
Logical volume lvm_01/lv01 successfully resized.
  • step2:执行pvs命令,查看物理卷(pv)使用情况:
root@lvs06:~# pvsPV         VG     Fmt  Attr PSize     PFree/dev/vdb   lvm_01 lvm2 a--  <1024.00g       0/dev/vdc   lvm_01 lvm2 a--  <1024.00g       0/dev/vdd   lvm_01 lvm2 a--  <1024.00g       0/dev/vde   lvm_01 lvm2 a--  <1024.00g       0/dev/vdf   lvm_01 lvm2 a--  <1024.00g       0/dev/vdg   lvm_01 lvm2 a--  <1024.00g <523.98g
  • step3:执行以下resize2fs命令扩容文件系统:
resize2fs  逻辑卷路径

执行结果如下:

root@lvs06:~# resize2fs  /dev/lvm_01/lv01
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/lvm_01/lv01 is mounted on /media/lv01; on-line resizing required
old_desc_blocks = 640, new_desc_blocks = 703
The filesystem on /dev/lvm_01/lv01 is now 1473249280 (4k) blocks long.
  • step4:执行df-h名称,查看文件系统扩容情况
root@lvs06:~# df -h
Filesystem               Size  Used Avail Use% Mounted on
udev                      12G     0   12G   0% /dev
tmpfs                    2.4G  3.7M  2.4G   1% /run
/dev/vda1                 40G  3.6G   34G  10% /
tmpfs                     12G     0   12G   0% /dev/shm
tmpfs                    5.0M     0  5.0M   0% /run/lock
tmpfs                     12G     0   12G   0% /sys/fs/cgroup
tmpfs                    2.4G     0  2.4G   0% /run/user/0
/dev/mapper/lvm_01-lv01  5.5T   83M  5.2T   1% /media/lv01


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剧情反转:今年AI要凉!薪资碾压全行,但人才缺500万!

最近关于AI有两个消息&#xff0c;一个好的&#xff0c;一个坏的。先说好消息。德勤发布《全球人工智能发展白皮书》&#xff0c;预计到2025年&#xff0c;世界人工智能市场规模将超过6万亿美元&#xff01;2017年至2025年复合增长率达30%。毫无疑问&#xff0c;目前AI还是一个…

主索引频繁分裂

问题描述&#xff1a; 每个数据页都会为存储在它里边儿的记录生成一个页目录&#xff0c;在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽&#xff0c;然后再遍历该槽对应分组中的记录即可快速找到指定的记录&#xff0c;如果主键不是id单调递增的,有…

maven 报错一站式解决方案

文章目录一、本地maven玩耍三部曲1. 先确认项目引用默认的maven配置是否正确2. 查看IntelliJ IDEA查看maven配置是否正确3. 重新导入maven依赖二、本地maven报错5步走2.1. 配置maven阿里云仓库2.2. 删除本地仓库中不完整的jar2.3. 连接外网2.4. 在线下载依赖2.5. 重新导入maven…

如果测试没有梦想,那跟咸鱼有什么区别?

软件质量不是测出来的&#xff0c;但为什么又有这么多测试工程师为了质量而工作&#xff1f;测试是一个成本部门&#xff0c;测试创造的价值是什么&#xff1f;研发的模式在不断地变化&#xff0c;测试的定位如何不断去定义&#xff0c;未来的测试又会是什么形态&#xff1f;今…

Java-Scanner进阶使用

整数、小数 输入 public class Demo04 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 从键盘接收数据int i 0;float f 0.0f;System.out.println("请输入整数&#xff1a; ");if (scanner.hasNextInt()){i scanner.nextI…

使用阿里云极速型NAS构建高可用的GitLab

使用阿里云文件存储NAS构建GitLab高可用环境 GitLab简介 GitLab是一个利用 Ruby on Rails 开发的开源应用程序&#xff0c;实现一个自托管的Git项目仓库&#xff0c;可通过Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护 web 应用程序变得…

The following SDK components were not installed: extra-google-m2repository and platform-tools

安装android studio到最后一步的时候遇见了这个问题 。 android studio安装详见Android Studio 安装 经过查阅多篇博客 把他们的解决方案放在一起一顿操作猛如虎&#xff0c;然后就成了。。。 2篇原文链接我放在这里&#xff1a; Android Studio新建工程时SDK缺少extra-an…

数据库中间件漫谈——看看云时代,它会走向何方

来源 | 阿丸笔记封图| CSDN 下载于视觉中国前言随着业务的发展&#xff0c;MySQL数据库中的表会越来越多&#xff0c;表中的数据量也会越来越大&#xff0c;相应地&#xff0c;数据操作的开销也会越来越大&#xff1b;另外&#xff0c;无论怎样升级硬件资源&#xff0c;单台服务…

即插即用,基于阿里云Ganos快速构建云上开源GIS方案

对于轻量级GIS应用&#xff0c;选择具备时空能力的云上数据库再搭配开源GIS软件&#xff0c;能够快速构建稳定、廉价、实用的GIS解决方案。Ganos是阿里云自研时空基础设施&#xff08;PaaS层&#xff09;的核心引擎&#xff0c;该引擎整合了云上异构计算并行加速、OSS大规模存储…

linux执行sh报错:$’\r’: 未找到命令的解决

背景执行.sh脚本时出现$’\r’: 未找到命令&#xff0c;原因是因为命令直接从windows 复制过来导致的解决yum install dos2unixdos2unix **.sh 进行转换再次执行即可

Knative 初体验:Serving Hello World

通过前面两章的学习你已经掌握了很多 Knative 的理论知识&#xff0c;基于这些知识你应该对 Knative 是谁、它来自哪里以及它要做什么有了一定的认识。可是即便如此你可能还是会有一种犹抱琵琶半遮面&#xff0c;看不清真容的感觉&#xff0c;这就好比红娘拿姑娘的 100 张生活照…

Java-if选择结构

if单选择结构 if双选择结构 if多选择结构 嵌套if结构 https://www.bilibili.com/video/BV12J41137hu?p36&spm_id_frompageDriver

数据仓库介绍与实时数仓案例

1.数据仓库简介 数据仓库是一个面向主题的&#xff08;Subject Oriented&#xff09;、集成的&#xff08;Integrate&#xff09;、相对稳定的&#xff08;Non-Volatile&#xff09;、反映历史变化&#xff08;Time Variant&#xff09;的数据集合&#xff0c;用于支持管理决策…

Centos7 安装docker-compose

文章目录1. 下载Docker Compose2. 给docker-compose执行权限3. 查看docker-compose版本信息1. 下载Docker Compose 官网链接&#xff1a;https://docs.docker.com/compose/install/ Run this command to download the current stable release of Docker Compose: curl -L "…

优酷背后的大数据秘密

在本文中优酷数据中台的数据技术专家门德亮分享了优酷从Hadoop迁移到阿里云MaxCompute后对业务及平台的价值。 本文内容根据演讲视频以及PPT整理而成。 大家好&#xff0c;我是门德亮&#xff0c;现在在优酷数据中台做数据相关的事情。很荣幸&#xff0c;我正好见证了优酷从没…

从提取层、处理层、基础结构入手,带你了解Spark和Kafka!

作者 | Jaskaran S. Puri译者 | 火火酱 责编 | 徐威龙封图| CSDN 下载于视觉中国电子商务市场中典型的一天是这样的&#xff1a;每分钟发生1万个事件流&#xff0c;并且要选择合适的工具对其进行处理。本文将帮助你重新创建一个场景&#xff0c;其中有大量的数据流入&#xff0…

既有 HTTP ,为啥用 RPC 进行服务调用?

RPC 只是一种设计而已 RPC 只是一种概念、一种设计&#xff0c;就是为了解决 不同服务之间的调用问题, 它一般会包含有 传输协议 和 序列化协议 这两个。 但是&#xff0c;HTTP 是一种协议&#xff0c;RPC框架可以使用 HTTP协议作为传输协议或者直接使用TCP作为传输协议&#x…

Centos7 安装docker和docker-compose

文章目录1. 环境介绍2. 删除旧版本和相关依赖3. 安装依赖4. 配置稳定的repositories5. 安装docker6. docker信息7. Centos7 安装docker-compose1. 环境介绍 Centos7&#xff0c;参考官方文档&#xff1a;https://docs.docker.com/insta… 2. 删除旧版本和相关依赖 yum remov…

Java-switch选择结构

基本类型 public class SwitchDemo01 {public static void main(String[] args) {// case 穿透char grade B;switch (grade) {case A:System.out.println("优秀");break;case B:System.out.println("良好");break;case C:System.out.println("及格&…

高性能服务器架构思路【不仅是思路】

在服务器端程序开发领域&#xff0c;性能问题一直是备受关注的重点。业界有大量的框架、组件、类库都是以性能为卖点而广为人知。然而&#xff0c;服务器端程序在性能问题上应该有何种基本思路&#xff0c;这个却很少被这些项目的文档提及。本文正式希望介绍服务器端解决性能问…