使用Linux lvm
概览
这次是要给服务器的安装一个MySQL数据库系统,需要一个比较大的空间,而且要能后期灵活增加空间,所以把已有的硬盘做成lvm是最好的选择。逻辑卷是一个很好用的磁盘管理工具,就像它的名字,你操作的是逻辑卷而不是直接使用物理磁盘。我们可以方便的调整逻辑卷的大小而不会损坏数据,随时把新磁盘加入逻辑卷管理来拓展存储空间。lvm的结构如下图所示
如图所示,磁盘和磁盘的分区可以加入一个物理卷(PV),一个或者多个物理卷组成一个卷组(VG),在卷组的基础上可以创建逻辑卷(LV)。 本例中有12块4T大小的硬盘,我们把这12块硬盘都加入lvm,切分出其中的一部分创建lv并挂在到/app。大致过程是:
- 给每个硬盘分一个区
- 把所有的分区创建为物理卷
- 把物理卷加入卷组
- 在卷组的基础上创建逻辑卷
- 格式化逻辑卷
- 挂载逻辑卷
操作过程
安装parted
使用parted给硬盘分区,因为是大于2T的硬盘,所以我们采用parted划分硬盘而不是传统的fdisk。大部分Linux系统会有parted的安装,如果没有请使用各自的方法安装,此处仅示范centos和Ubuntu的安装
$ sudo apt install parted
复制代码
$ sudo yum install parted
复制代码
给硬盘分区
我们这次把整块硬盘作一个分区全部加入一个物理卷中(或许物理磁盘不分区也能直接加入物理卷,但我没有试验成功,所以这次我把整个磁盘分到一个分区中),使用parted进行分区
$ sudo parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
复制代码
查看已有的分区信息
(parted) print
Model: QEMU QEMU HARDDISK (scsi)
Disk /dev/sdb: 4001GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: pmbr_bootNumber Start End Size File system Name Flags1 17.4kB 4001GB 4001GB sdb1
复制代码
这是一个分好的硬盘分区信息一共4T,分区表类型是的gpt,把所有空间分到一个分区里了。如果是一个新硬盘需要创建分区表和分区:
(parted) mkpart
Partition name? []? sdb1
File system type? [ext2]? xfs
Start? 0
End? 4001G
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) quit
复制代码
退出保存分区信息,我们这里应为业务需要把整个盘放到一个分区里了,当然你也可以分多个区,计算好开始和结束的区间就行。后面11块硬盘相同的操作方式做好分区准备,盘符大致:sdb1, sdc1,sdd1...sdm1
把分区加入物理卷
把12个分区都加入物理卷
$ sudo pvcreate /dev/sdb1
$ sudo pvcreate /dev/sdc1
...
$ sudo pvcreate /dev/sdm1
复制代码
创建完物理卷后,运行pvdisplay查看一下建好的物理卷,执行完pvdisplay后显示的结果大致如下,我只显示了一个pv的。
$ sudo pvdisplay--- Physical volume ---PV Name /dev/sdb1VG Name PV Size <3.64 TiB / not usable 3.80 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 953861Free PE 0Allocated PE 953861PV UUID 70p52P-TafB-YkwL-YG8P-Bo0x-3C0i-coKJMu
复制代码
当然如果有问题,也可以使用 pvremove删除物理卷
$ sudo pvremove /dev/sdb1
复制代码
加入卷组
把建好的12个物理卷加入一个卷组,这是我们的业务需求,把12个物理卷加到一个卷组中,你也可以根据自己的需求灵活配置。下列命令就是把12个物理卷加入一个名称为vgapp的卷组里。
$ sudo vgcreate vgapp /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1 /dev/sdm1
复制代码
使用vgdisplay查看已建的卷组
$ sudo vgdisplay--- Volume group ---VG Name vgappSystem ID Format lvm2Metadata Areas 12Metadata Sequence No 2VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 12Act PV 12VG Size 43.66 TiBPE Size 4.00 MiBTotal PE 11446332Alloc PE / Size 0 / 0Free PE / Size 6203452 / 23.66 TiBVG UUID Kc9ybM-8ZTw-OOPY-opX5-Azgc-dbgB-HMCeIs
复制代码
从输出中,我们可以看见卷组的使用量/总量。只要在这个卷组中还有可用空间,我们就可以随意创建逻辑卷。 如果卷组分配不合理也可以使用vgremove删除卷组重新建
$ sudo vgremove vgapp
复制代码
创建逻辑卷
上一步我们已经建好了一个名称为vgapp的卷组,现在我们就可以在这个卷则上建一个逻辑卷了。我们需要用到大概20T空间在名为vgapp的卷组上建立一个名为lvapp的逻辑卷.
sudo lvcreate -L 20T -n lvapp vgapp
复制代码
这里的是创建了一个默认的Linear逻辑卷,其实还支持其他的方式建立逻辑卷,比如条带化卷(类似raid0),镜像卷(类似raid1)或者它们的集中组合,这些我以后再研究。创建完成后使用lvdisplay查看刚建好的逻辑卷
$ sudo lvdisplay
复制代码
结果如下
$ sudo lvdisplay--- Logical volume ---LV Path /dev/vgapp/lvappLV Name lvappVG Name vgappLV UUID 1CpWwd-b4Wf-fdqP-gMPO-1Jb8-0w0h-idvXBoLV Write Access read/writeLV Creation host, time xjwlmq-16f-c07-sev-hw2288v3-02u10, 2019-02-28 13:25:34 +0800LV Status available# open 1LV Size 20.00 TiBCurrent LE 5242880Segments 6Allocation inheritRead ahead sectors auto- currently set to 8192Block device 253:0
复制代码
使用逻辑卷
逻辑卷建好了就可以把它格式化并挂在到系统的某个目录开始使用了
$ sudo mkfs.xfs /dev/vgapp/lvapp
$ sudo mkdir /app
$ sudo mount /dev/vgapp/lvapp /app/
复制代码
挂载完成后就可以看看我们的劳动成果
$ sudo df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 1.0T 1.2G 1023G 1% /
devtmpfs 63G 0 63G 0% /dev
tmpfs 63G 0 63G 0% /dev/shm
tmpfs 63G 553M 63G 1% /run
tmpfs 63G 0 63G 0% /sys/fs/cgroup
/dev/sda1 509M 128M 381M 26% /boot
/dev/mapper/vgapp-lvapp 20T 33M 20T 1% /app
tmpfs 13G 0 13G 0% /run/user/1001复制代码
其中20T那个/app目录挂载的就是我们刚建的逻辑卷。最后别忘记把这放到/etc/fstab中实现开机挂载
$ sudo cat /etc/fatab#
# /etc/fstab
# Created by anaconda on Sun Oct 14 10:36:44 2018
#
# 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=a7f90806-f11c-41ca-8210-2a758d38aed8 / xfs defaults 0 0
UUID=ca13fb4a-64a6-4a2b-9847-c309145ae3b4 /boot xfs defaults 0 0
/dev/vgapp/lvapp /app xfs defaults 1 2
复制代码
后记
lvm的功能强大的很,以后可以多研究一下,除了支持类似raid的逻辑卷外,还有快照等功能。
参考文档
- https://linux.cn/article-3218-1.html
- https://linux.cn/article-9536-1.html
- https://www.computerhope.com/unix/parted.htm
- https://blog.csdn.net/Man_In_The_Night/article/details/86575198
- http://www.cnblogs.com/onlybobby/p/7018788.html
使用Linux lvm相关推荐
- Linux LVM 的使用详解
Linux LVM 的使用详解 2011-12-20 14:41 摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间.而 ...
- linux lvm使用情况,Linux LVM系列(一)lvm使用
简介 逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑&qu ...
- linux删除配置信息,Linux LVM逻辑卷配置过程详解(创建、扩展、缩减、删除、卸载、快照创建)...
一.预备知识 LVM全称为Logical Volume Manager逻辑卷管理器,LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分 ...
- 通用线程: 学习 Linux LVM
为什么80%的码农都做不了架构师?>>> 通用线程: 学习 Linux LVM "逻辑卷管理"为存储器管理带来的魔力 Daniel Robbins ( dr ...
- Linux LVM 收藏
对于Linux用户而言,在安装一台Linux机器的时候,遇到的问题之一就是给各分区估计和分派足够的硬盘空间.无论对一个正在为服务器寻找空间的系统管理员,还是一个磁盘即将用尽的普通用户来说,这都是一个非 ...
- [zz]一份非常内行的Linux LVM HOWTO
作 者: 谢启发 1. 绪论 欢迎你,亲爱的读者. 写这个文档的目的是为了告诉你什么是LVM,它怎样工作,你怎样运用它使你的生活变得更容易.虽然有一份LVM FAQ,但仍是德文的,它是从不同的角度来描 ...
- linux查看lvm命令,linux lvm常用命令总结
linux LVM 1 创建 .删除思路创建:Linux分区---物理卷---卷组---逻辑卷删除:逻辑卷---卷组----物理卷---Linux分区 2 linux分区 linux中我们通常使用fd ...
- linux lvm添加磁盘,Linux下添加磁盘创建lvm分区
shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...
- linux系统下卷组管理,Linux LVM卷组管理
Linux LVM卷组管理 由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理. 由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数 ...
- Linux LVM与磁盘配额详解
Linux LVM与磁盘配额 一.LVM概述 1.1Logical Volume Manager,逻辑卷管理 1.2LVM机制的基本概念 二.LVM的管理命令 三.LVM操作主要命令步骤 1.关闭主机 ...
最新文章
- SCVMM2012功能测试(7)—更新管理(符合性)
- 简单介绍SQLserver中的declare变量用法
- C++——智能指针——auto_ptr、shared_ptr、unique_ptr
- mysql中括号_mysql进阶知识点,启动项、系统变量、字符集介绍!
- 最新数据分析与商业智能趋势前瞻
- Win10怎么改网络服务器账号,win10系统设置网络的方法图解步骤
- 并发编程的 15 条建议(译)
- 窗口最小化消息的解决之道
- mats检测工具 400版_川崎新款忍者400新配色发布
- 开发过程中解决各种跨域问题
- 自己写个扩展把Mootools的语法改的和Jquery的语法一模一样
- html生成图片有色差,引起打印的产品和电脑图片有色差的原因有哪些?
- 【读书笔记-数据挖掘概念与技术】数据预处理
- redis-trib.rb操作命令
- Tensorflow 年龄和性别识别(AgeGender)
- 柬埔寨攻略―签证、机票
- 把故事收回到一杯茶里,不知不觉,茶已经凉了
- html编写购物网站页面练习(一)
- cond怎么读_cond condition是什么意思
- os.system和os.popen和commands
热门文章
- Android中使用Notification在通知栏中显示通知
- Winform中设置Dialog的显示位置居中
- java对象创建的流程到底是什么样子的?new一个对象是真的直接放在堆里吗?其实大有学问!
- 笔试训练1 知识点整理
- 个人计算机与微型计算机的区别与联系,微处理器、微型计算机和微型计算机系统之间有何联系与区别?...
- 用Java代码实现日志记录器_如何在此简单的Java日志记录实现中附加到日志文件? - java...
- 线性拟合polyfit_6.数据分析(1) 描述性统计量和线性回归(2)
- 用matlab相关分析,基于matlab的逐像元偏相关分析
- 直播预告丨行业大咖带你找到游戏企业经营新升级的正确打开方式
- 神策数据受邀参加全国 APP 个人信息保护监管会