需求场景

将MySQL主机的218T的数据盘空间全部“合并”后挂载到/mysql_data目录下,要求文件系统格式化为xfs;已有关键信息梳理如下:

  • 需要挂载的数据盘

    • /dev/sdb:18T
    • /dev/sdc:18T
  • 文件系统:xfs
  • 挂载目录:/mysql_data

操作系统环境

  • OS版本:CentOS 7.5
  • lvm版本:lvm2

实现方法

要想实现此需求,可使用LVM逻辑卷管理来做到。

实现步骤

磁盘分区

在将磁盘或者磁盘分区用作物理卷(PV)之前,需要对其进行初始化工作,即进行磁盘分区操作;因磁盘分区需求大于2T,所以fdisk无法实现管理,需要使用parted命令来做磁盘分区管理;parted的详细使用方法请参考博主之前的博客:使用parted命令对磁盘进行分区

  • /dev/sdb
  1. # 新建/dev/sdb的磁盘标签类型为GPT
  2. [root@MYSQL-SERVER ~]# parted /dev/sdb mklabel gpt
  3. # 将/dev/sdb整个空间分给同一个分区
  4. [root@MYSQL-SERVER ~]# parted /dev/sdb mkpart primary 0 100%
  5. Warning: The resulting partition is not properly aligned for best performance.
  6. Ignore/Cancel? I
  7. Information: You may need to update /etc/fstab.
  • /dev/sdc
  1. # 新建/dev/sdc的磁盘标签类型为GPT
  2. [root@MYSQL-SERVER ~]# parted /dev/sdc mklabel gpt
  3. # 将/dev/sdc整个空间分给同一个分区
  4. [root@MYSQL-SERVER ~]# parted /dev/sdc mkpart primary 0 100%
  5. Warning: The resulting partition is not properly aligned for best performance.
  6. Ignore/Cancel? I
  7. Information: You may need to update /etc/fstab.

创建物理卷

创建物理卷的命令为pvcreate;利用该命令将希望添加到卷组的所有分区或磁盘创建为物理卷;

将分区/dev/sdb1/dev/sdc1分区创建为物理卷:

  1. [root@MYSQL-SERVER ~]# pvcreate /dev/sdb1
  2. Physical volume "/dev/sdb1" successfully created.
  3. [root@MYSQL-SERVER ~]# pvcreate /dev/sdc1
  4. Physical volume "/dev/sdc1" successfully created.

创建卷组

创建卷组的命令为vgcreate;用此命令将使用pvcreate建立的物理卷创建为一个完整的卷组;

将物理卷/dev/sdb1创建为一个名为vgmysql的卷组:

  1. [root@MYSQL-SERVER ~]# vgcreate vgmysql /dev/sdb1
  2. Volume group "vgmysql" successfully created

添加新的物理卷到卷组中

此步即为将2块磁盘空间合二为一的关键步骤;当系统中新增了磁盘或新建了物理卷,而要将其添加到已有卷组时,就可使用vgextend命令;

将物理卷/dev/sdc1添加到vgmysql卷组中:

  1. [root@MYSQL-SERVER ~]# vgextend vgmysql /dev/sdc1
  2. Volume group "vgmysql" successfully extended

查看卷组

查看卷组用vgs

  1. [root@MYSQL-SERVER ~]# vgs
  2. VG #PV #LV #SN Attr VSize VFree
  3. vgmysql 2 0 0 wz--n- 32.74t 32.74t
  4. vgroot 1 4 0 wz--n- 264.00g 4.00m

从vgs命令的回显结果来看,卷组vgmysql成功添加,并且其总空间为两块物理磁盘的总大小(因换算单位不同,所以不是精确的38T)。

创建逻辑卷

创建逻辑卷的命令为lvcreate;用此命令将在使用vgcreate建立的卷组上创建逻辑卷;

在卷组vgmysql上创建一个名为lvmysql的逻辑卷,起大小为32.7T

  • -n:指定逻辑卷名
  • -L:指定逻辑卷大小
  1. [root@MYSQL-SERVER ~]# lvcreate -L 32.7T -n lvmysql vgmysql
  2. Rounding up size to full physical extent 32.70 TiB
  3. Logical volume "lvmysql" created.

格式化逻辑卷

将创建的lvmysql逻辑卷格式化为xfs

  1. [root@MYSQL-SERVER ~]# mkfs -t xfs /dev/vgmysql/lvmysql
  2. meta-data=/dev/vgmysql/lvmysql isize=512 agcount=33, agsize=268435328 blks
  3. = sectsz=4096 attr=2, projid32bit=1
  4. = crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0
  5. data = bsize=4096 blocks=8777839616, imaxpct=5
  6. = sunit=64 swidth=64 blks
  7. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  8. log =internal log bsize=4096 blocks=521728, version=2
  9. = sectsz=4096 sunit=1 blks, lazy-count=1
  10. realtime =none extsz=4096 blocks=0, rtextents=0

创建挂载目录并挂载

  • 创建挂载目录/mysql_data
  1. [root@MYSQL-SERVER ~]# mkdir /mysql_data
  • 挂载
  1. [root@MYSQL-SERVER ~]# mount /dev/vgmysql/lvmysql /mysql_data/
  • 做开机自动挂载
  1. echo '
  2. /dev/mapper/vgmysql-lvmysql /mysql_data xfs defaults 0 0' >/etc/fstab

查看是否挂载成功

  1. [root@MYSQL-SERVER ~]# df -h
  2. Filesystem Size Used Avail Use% Mounted on
  3. /dev/mapper/vgroot-lv_root 40G 1.8G 36G 5% /
  4. devtmpfs 126G 0 126G 0% /dev
  5. tmpfs 126G 0 126G 0% /dev/shm
  6. tmpfs 126G 1.1M 126G 1% /run
  7. tmpfs 126G 0 126G 0% /sys/fs/cgroup
  8. /dev/sda1 976M 197M 713M 22% /boot
  9. /dev/mapper/vgroot-lv_var 59G 197M 56G 1% /var
  10. /dev/mapper/vgroot-lv_home 99G 5.6G 88G 6% /home
  11. tmpfs 26G 0 26G 0% /run/user/0
  12. /dev/mapper/vgmysql-lvmysql 33T 34M 33T 1% /mysql_data
  13. [root@MYSQL-SERVER ~]# lsblk
  14. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  15. sda 8:0 0 446.1G 0 disk
  16. ├─sda1 8:1 0 1G 0 part /boot
  17. ├─sda2 8:2 0 264G 0 part
  18. ├─vgroot-lv_root 253:0 0 40G 0 lvm /
  19. ├─vgroot-lv_swap 253:1 0 64G 0 lvm [SWAP]
  20. ├─vgroot-lv_var 253:2 0 60G 0 lvm /var
  21. └─vgroot-lv_home 253:3 0 100G 0 lvm /home
  22. └─sda3 8:3 0 64M 0 part
  23. sdb 8:16 0 16.4T 0 disk
  24. └─sdb1 8:17 0 16.4T 0 part
  25. └─vgmysql-lvmysql 253:4 0 32.7T 0 lvm /mysql_data
  26. sdc 8:32 0 16.4T 0 disk
  27. └─sdc1 8:33 0 16.4T 0 part
  28. └─vgmysql-lvmysql 253:4 0 32.7T 0 lvm /mysql_data
  29. nvme0n1 259:0 0 1.5T 0 disk
  30. [root@MYSQL-SERVER ~]# blkid
  31. /dev/sda1: UUID="5a350fc9-d3d2-44c7-9574-30bf9a9dd0d3" TYPE="ext4"
  32. /dev/sda2: UUID="Sum0Mm-6ShR-6ajh-cYQO-091c-r7QI-zfbDpm" TYPE="LVM2_member"
  33. /dev/sda3: UUID="2019-05-24-11-39-22-00" LABEL="config-2" TYPE="iso9660"
  34. /dev/mapper/vgroot-lv_root: UUID="df07731a-5e56-4cc3-95ab-b723b5979332" TYPE="ext4"
  35. /dev/mapper/vgroot-lv_swap: UUID="7b5cd64d-d316-430d-8a83-aca89c4708d2" TYPE="swap"
  36. /dev/mapper/vgroot-lv_var: UUID="025cb128-de8f-4bca-8206-5c1601e79715" TYPE="ext4"
  37. /dev/mapper/vgroot-lv_home: UUID="7bd155b6-9200-442a-a61a-32076c0e4b7e" TYPE="ext4"
  38. /dev/sdc1: UUID="rWbWuV-nt59-ba72-VJrL-RTM2-EJJt-VVkhZF" TYPE="LVM2_member" PARTLABEL="sdc1" PARTUUID="355eb343-f2c9-4f13-9477-52b0fb267d5f"
  39. /dev/sdb1: UUID="yfQk1G-nlN8-OOYu-nptl-cg2d-rD0L-uBFnhW" TYPE="LVM2_member" PARTLABEL="sdb1" PARTUUID="19db36ba-ec9c-4f35-9b29-b7bd2155f0dd"
  40. /dev/mapper/vgmysql-lvmysql: UUID="67cda45d-4282-4346-8be1-e4ec375c2892" TYPE="xfs"
  41. [root@MYSQL-SERVER ~]# tail -1 /etc/fstab
  42. /dev/mapper/vgmysql-lvmysql /mysql_data xfs defaults 0 0

LVM实现将2块磁盘总空间“合二为一”并挂载到同一目录的更多相关文章

  1. RAD介绍及实战,LVM介绍及实战,磁盘常见故障

    目录 一.RAID 1.RAID好处: 2.RAID的运行方式: 3.RAID的级别: 二.RAID实战 软RAID 1.RAID0 2.RAID1 3.RAID5 4.RAID10 三.LVM介绍 ...

  2. ASM磁盘组空间不足--ORA-15041:DISGROUP DATA space exhausted (生产库案例)

    原创作品,出自 "深蓝的blog" 博客,深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/47277715 近日 ...

  3. Java获取Linux和Window系统CPU、内存和磁盘总使用率的情况

    这是一个工具类,获取的内容: CPU使用率:得到的是当前CPU的使用情况,这是算出的是两次500毫秒时间差的CPU使用率 内存使用率:[1 -  剩余的物理内存/(总的物理内存+虚拟内存) ] * 1 ...

  4. Linux下查看磁盘剩余空间和文件夹大小

    1. du -sh 查看当前文件夹大小 2. du -sh * | sort -n 列出当前文件夹下的所有文件夹及其大小,并按照文件夹大小排序 du - sh *  //查看当前文件夹下所有文件的大小 ...

  5. /tmp/crontab.tDoyrp: 设备上没有空间 查看文件夹所在分区 磁盘剩余空间 15g的root-mail大文件

    问题诊断: 文件夹所在磁盘已满 问题确认: 查看文件夹所在磁盘剩余空间,找出空间被消耗的文件(集) 查看文件夹所在磁盘空间的所属文件(暂未解决) [root@hadoop1 /]# df -Bg /t ...

  6. 解决samba共享虚拟机第二块磁盘的难题

    linux下使用samba共享文件到window下已经实现过了   点此链接 但是共享时磁盘空间是有限的,如果空间使用完了该怎么处理呢?这是个头疼的问题,不知道samba支持不支持共享第二个文件夹,由 ...

  7. 系统服务监控指标--load、CPU利用率、磁盘剩余空间、磁盘I/O、内存使用情况等

    介绍 大型互联网企业的背后,依靠的是成千上万台服务器日夜不停的运转,以支撑其业务的运转.宕机对于互联网企业来说,代价是沉重的,轻则影响用户体验,重则直接影响交易,导致交易下跌,并且给企业声誉造成不可挽 ...

  8. Linux系统查看磁盘可用空间的5个命令

    大家好,我是良许. 工作中,经常会遇到磁盘爆满的情况,尤其是一台服务器运行了 N 年之后,里面会充满各种各样垃圾文件,比如:编译产生的中间文件.打包的镜像文件.日志文件,等等. 别问我怎么知道,我上家 ...

  9. android计算每个目录剩余空间丶总空间以及SD卡剩余空间

    ublic class MemorySpaceCheck { /** * 计算剩余空间 * @param path * @return */ public static String getAvail ...

随机推荐

  1. ELF文件之九——使用链接脚本-2个函数-data-bss-temp-call-debug信息-struct

    main.c int enable; ; struct aaa { int membera; char memberb; }s_aaa; int main() { int temp; add(); d ...

  2. Effective Java, Third Edition

    https://github.com/jbloch/effective-java-3e-source-code 网址是 Effetive java的源码 effective-java-3e-sourc ...

  3. HDU 1042 大数阶乘

    B - 2 Time Limit:5000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Statu ...

  4. MATLAB添加工具箱及无法连接到MathWorks问题

    版本信息:官网下载的MATLAB R2019b 学生版 操作系统:Windows 10 在安装MATLAB时,需要我们自行选择要安装工具箱,如何在已安装MATLAB后添加当初没有选择安装的工具箱呢?第 ...

  5. 如何使用Xcode调试Shader代码Bug导致的渲染问题

    我最近发现了一个与Unity中的表面着色器有关的小Bug. 你可以看到如下所示的渲染瑕疵. 有时人们会将相似的渲染瑕疵归因于同时使用HDR和Bloom效果,但实际上,表面着色器是错误的,至少在本文中所 ...

  6. JMeter接口测试-循环读取库的用户信息

    前言 如何实现循环读取数据库的用户信息,并传递到下一个登录请求呢,下面我们一起来学习吧!在之前我们已经学会了利用JMeter连接数据库了,具体操作可以看我之前的随笔JMeter接口测试-JDBC测试 ...

  7. 如何用apply实现一个bind?

    面试题:如何用apply实现一个bind? Function.prototype._bind = function(target) { // 保留调用_bind方法的对象 let _this = th ...

  8. SAP 序列号与库存关联起来?

    SAP 序列号与库存关联起来? SAP系统标准功能可以实现序列号管理.其系统配置也不复杂,但是不少企业却使用不起来.笔者参与的诸多项目里,只有现在所在的项目里有启用序列号管理.基于项目客户所在行业,以 ...

  9. MySQL手工注入学习-1

    MySQL手工注入学习 SQLi-labs 手工注入学习 以下是通过SLQi-labs平台的部分简单例题的手工注入过程 Less-1:union联合查询注入 页面提示:Please input the ...

  10. 14.Android-使用sendMessage线程之间通信

    1.Handler介绍 Handler 是一个消息分发对象.handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理机制,通过它可以实现在不同线程之间传递消息 本章Handle ...