虚拟机扩容---续集(热扩容)

参考:https://blog.51cto.com/13551258/2057686

https://my.oschina.net/u/3992081/blog/2253865

https://blog.csdn.net/youmatterhsp/article/details/80696999

Linux7/Centos7磁盘分区、格式化及LVM管理

一、磁盘分区是怎样表示的?

IDE磁盘的设备文件采用/dev/hdx 来命名,分区则采用/dev/hdxy来命名,其中想表示磁盘(a是第一块磁盘,b是第二块磁盘,以此类推),与代表分区的号码(由1开始,1,2,3,以此类推)

SCSI设备和分区采用/dev/sdx和/dev/sdxy来命名(x和y的命名规则与IED磁盘命名规则一样)。

A、对IED接口

第一主盘:hda第一从盘:hdb 第一从盘第一分区:hdb1

B、对SCSI接口

第一主盘:sda 第一从盘:sdb 第一从盘第一分区:sdb1

设备

设备在Linux中的文件名

IDE硬盘

/dev/ha[a-d]

SCSI/SATA/USB硬盘

/dev/sd[a-p]

U盘

/dev/sd[a-p]

软盘

/dev/fd[0-1]

打印机

25针 /dev/lp[0-2]

USB    /dev/usb/lp[0-15]

鼠标

/dev/mouse

光区

/dev/cdrom

二、Linux磁盘分区与文件系统类命令

命令

说明

df

检查文件系统的磁盘空间占用情况,参数-a列出全部目录,参数-h按KB,MB,GB显示

du 

检测某个目录或文件占用磁盘的空间,参数-s显示占用总空间;参数-sh统计目录大小

mount

挂载各种文件系统,如mount -t <文件系统> 设备名 挂载点

file

判断文件类型

parted

适合与MBR、GPT两种模式的分区命令

fdisk

用于磁盘分区,是Linux的磁盘分区表操作工具

mkfs

磁盘格式化

fsck

fsck用来检查和维护不一致的文件系统

三、LinuxLVM逻辑卷管理

由于传统的磁盘管理不能对磁盘进行磁盘管理,因此诞生了LVM技术,LVM技术最大的特点就是对磁盘进行动态管理。由于LVM的逻辑卷的大小更改可以进行动态调整,且不会出现丢失数据的情况。

LVM(Logic Volume Manager)是逻辑卷管理的简称。它是Linux环境下对磁盘分区管理的一种机制。对于其他的的UNIX(AIX/HP/SUM)操作系统,以及Windows系统也有类似的磁盘管理软件。

LVM管理的方式非常简单,就是通过将底层的物料磁盘抽象并封装起来,然后以逻辑的方式呈现给上层应用。

逻辑卷管理的3个概念:

PV(physical volume) 物料卷

VG (Volume Group) 卷组

LG (Logical volume)逻辑卷

【过程】

(1)挂载物理磁盘;

(2)将物理磁盘初始化为物理卷PV;

(3)将一个或多个物理卷PV转变为一个卷组VG。

(4)从VG中创建逻辑卷。

(5)根据实际需要将逻辑卷挂载使用。

(6)根据需要对磁盘or逻辑卷进行扩展和缩减。

PE(Physical Extend) 物理扩展

其实格式化物理卷的过程就是LVM将底层的磁盘划分为一个一个PE的过程,PE默认大小为4M,可以说是LVM管理的基本单位。

命令

说明

pvcreate

pvcreate 设备全路径名,物理卷的创建

pvmove

物理卷的删除

vgscan

检测系统中所有磁盘

vgck

vgck   [卷组名]检测卷组中卷组描述区域信息的一致性。

vgdisplay

vgdisplay [卷组名] 显示卷组的属性信息

vgrename

vgrename 原卷组名 新卷组名

vgchange

#vgchange -a y|n [卷组名] //改变卷组的相应属性,是否可分配

#vgchange -l 最大逻辑卷数 //卷组可容纳最大逻辑卷数

#vgchange -x y|n  [卷组名] //卷是否有效

vgexport

卷组的输入

vgimport

卷组的输出

pvs

#显示PV的显示信息

vgcfgbackup

vgcfgbackup  [卷组名] //把卷组中VGDA信息备份到"/etc/vmconf"目录中的文件

vgcfgrestore

vgcfgrestore -n  [卷组名]  物理卷全路径名 //从备份文件中得到指定物理卷的信息

vgcreate

卷组创建

vgmove

卷组删除

vgextend

卷组扩展

vgreduce

卷组缩小

vgmerge

卷组合并

vgsplit

卷组拆分

vgs

显示VG简要信息

lvcreate

逻辑卷创建

lvremove

逻辑卷删除

lvextend

逻辑卷扩展

lvreduce

逻辑卷缩小

lvmdiskscan

检查所有的SCSI,IDE等存储设备

lvscan

检测逻辑卷的状态

lvdisplay

显示LV属性信息

lvchange

修改LV属性信息,-ay:标记LV为可用状态, -an:标记lv为不可用状态

lvs

显示LV 简要信息

LVM磁盘管理最常用的案例

01、创建PV、创建VG、创建LV

02、格式化LV并挂载文件系统使用

03、在线扩容,缩小文件系统

04、删除LV、删除VG、删除PV

05、使用总监

LVM添加顺序:PV-->VG-->LV

LVM删除顺序:LV-->VG-->PV

逻辑卷可在线扩展,但必须离线缩减,缩减很危险,缩减前进行备份。

扩展逻辑卷后文件系统也要扩容

缩减逻辑卷前要先缩减文件系统

四、磁盘分区相关命令操作演示

主要命令: df ,  du , fdisk, mkfs, mount ,umount ,/etc/fstab,  file parted

多块硬盘的组合:

  硬盘分两种:ide和scsi。

ide硬盘:

/dev/hda  第一块IDE硬盘

/dev/hdb  第二块IDE硬盘

...

/dev/hdn  第N块IDE硬盘

scsi硬盘:

/dev/sda  第一块SCSI硬盘

/dev/sdb  第二块SCSI硬盘

...

/dev/sdn  第N块SCSI硬盘

  硬盘分区:

/dev/hda1  第一个分区

/dev/hda2  第二个分区

...

/dev/hdan  第N个分区

  分区的三种情况:

  一、主分区:一块硬盘只能分四个主分区;

  二、扩展分区:将一个主分区拿出来做扩展分区;

  三、逻辑分区:在一个扩展分区里再分的分区。

  分区表:用来记录有几个分区。在MBR(主引导记录,位于一个磁盘的0柱面,0扇区,0磁道)就是一个磁盘最开始的地方64byte个地方,记录一个分区需要使用16个字节。

  光盘外设:

  /dev/cdrom

  IDE:

  /dev/hd1

  /dev/hd2

  SCSI:

  /dev/scd1

  /dev/scd2

  软盘:

  /dev/fd1

  /dev/fd2

  硬盘:

  /dev/hda  /dev/hda1

  /dev/sda  /dev/sda1

  U盘:(默认为scsi硬盘)

  /dev/sdx   (abcdef)     

  /dev/sda

  /dev/sdb...

  分区方法:

  fdisk /dev/sdb:进入后按命令提示操作进行分区(p:打印分区表,n:新建分区->p/e->+10G分配分区大小)。

  格式化:

  分区后,只有格式化了才能使用。

  windows系统下,文件系统是FAT32或者NTFS。但是在linux下是ext(后续升级到ext2,ext3)。

  相关命令:使用fdisk -l可以查看到系统中连接的外部设备,比如有硬盘,U盘。

       使用df -l可以查看已经挂载上的分区。

  注:fdisk -T(T要大写)比fdisk多一个显示参数:挂载点。

  Disk /dev/sdb doesn't contain a valid partition table:表示第二块SCSI硬盘没有包含一个有效的分区表。

  格式化方法:mkfs -t ext4 /dev/sdb1

  挂载:

  挂载方法:mount /dev/sdb1 /mnt/one(将/dev/sdb1挂载到/mnt/one目录上,相当于访问/mnt/one实际上在访问/dev/sdb1)。

  注:在windows下接入外设(如插入U盘)就能自动识别,退出的时候,只要点击右下角的删除硬件即可。但是linux系统下,接入外设必须手动挂载。

LVM:

一、概念:

      LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。

      与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也允许按用户组对存储卷进行管理,允许管理员用更直观的名称(如"sales'、 'development')代替物理磁盘名(如'sda'、'sdb')来标识存储卷。

如图所示LVM模型:


      由四个磁盘分区可以组成一个很大的空间,然后在这些空间上划分一些逻辑分区,当一个逻辑分区的空间不够用的时候,可以从剩余空间上划分一些空间给空间不够用的分区使用。

二、LVM基本术语
前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:

物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

简单来说就是:
PV:是物理的磁盘分区
VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘。
LV:也就是从VG中划分的逻辑分区

如下图所示PV、VG、LV三者关系:

三、安装LVM
首先确定系统中是否安装了lvm工具:

[root@localhost /]# rpm -qa|grep lvm
lvm2-2.02.87-6.el6.x86_64
lvm2-libs-2.02.87-6.el6.x86_64

如果命令结果输入类似于上例,那么说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。
四、创建和管理LVM
       要创建一个LVM系统,一般需要经过以下步骤: 
1、 创建分区

使用分区工具(如:fdisk等)创建LVM分区,方法和创建其他一般分区的方式是一样的,区别仅仅是LVM的分区类型为8e。如下列图所示:

clip_image006[8]

查看磁盘分区表

clip_image008[6]

使用fdisk创建分区,根据设备文件的绝对路径(/dev/hda)进入分区管理

clip_image010[6]

clip_image012[6]

一定要指定分区的格式为8e,这是LVM的分区格式

2、 创建PV

clip_image014[6]

3、 创建VG

clip_image016[6]

clip_image018[6]

创建完成VG之后,才能从VG中划分一个LV。

4、 创建LV

clip_image020[6]

创建了一个名字为lvData,容量大小是100M的分区,其中:-L:指定LV的大小 -n:指定LV的名。Vo1Group00:表示从这个VG中划分LV;

5、LV格式化及挂载

下一步需要对LV进行格式化(使用mksf进行格式化操作),然后LV才能存储资料

clip_image022[6]

将格式化后的LV分区挂载到指定的目录下,就可以像普通目录一样存储数据了

clip_image024[6]

挂载之后,可以看到此LV的容量。

如果要在系统启动的时候启动LV,最好是将lvData写入fstable 文件中,如下所示:

clip_image026[6]

使用Vim编辑器,打开/etc/fstab,在最后一行添加如图中所示,其中/dev/VolGroup00/lvData指定需要挂载的分区LV,/root/test指定要挂载的目录(挂载点),ext3分区文件系统格式,其它使用默认即可

 LVM备注:

扩容当前分区

一、首先创建一块新的分区:

fdisk  /dev/hda

n

l        #选择逻辑分区,如果没有,则首先创建扩展分区,然后再添加逻辑分区(硬盘:最多四个分区P-P-P-P或P-P-P-E)

6        #分区号(从5开始),/dev/hda6

t      8e   #分区类型8e表示LVM分区

w        #写入分区表

partprobe   #重读分区表

mkfs –t ext3 /dev/hda6 #格式化

partx /dev/hda #查看当前硬盘的分区表及使用情况

二、创建PV,扩容VG,LV

pvcreate /dev/hda6

vgdisplay #查看当前已经存在的VG信息,以存在VG:VolGroup00为例

vgextend VolGroup00 /dev/hda6    #扩展VolGroup00

lvdisplay #查看已经存在的LV信息,以存在LV:LogVol01为例

lvextend –L +1G /dev/VolGroup00/LogVol01 #扩展LV (扩展后需执行下一条命令resize2fs生效)

resize2fs /dev/VolGroup00/LogVol01 #执行该重设大小,对于当前正在使用的LogVol01有效

df –h #查看挂载情况,已经扩容

LVM操作的相关命令:    

fdisk -l :查看系统中都认到了那些物理硬盘     
pvdisplay:查看系统中已经创建好的物理卷     
pvcreate:创建一个新的物理卷     
pvremove:删除一个物理卷(也就是从物理卷中删除一个LVM标签)     
vgdisplay:查看系统中的卷组     
vgcreate:创建一个新的卷组     
vgreduce:从卷组中删除一个物理卷(也就是缩小卷组)     
vgremove:删除一个卷组     
lvdisplay:查看系统中已经创建好的逻辑卷     
lvcreate:创建一个新的逻辑卷     
lvreduce:缩小逻辑卷(也就是从一个逻辑卷中减少一些LE)     
lvremove:从系统中删除一个逻辑卷     
mkfs:基于逻辑卷创建一个相应类型的文件系统     
mkdir -p $mount_piont:创建一个挂载目录     
创建好的文件系统位于:     /dev/$create_vg_name/$lv_name     
mount /dev/$create_vg_name/$lv_name $mount_piont:挂载文件系统

vgscan:读取系统中创建的所有卷组    
vgchange -a y :激活所有卷组  (开机执行,redhat可在/etc/rc.d/rc.sysinit系统启动初始化脚本里可以找到)    vgchange -a n :关闭所有卷组(提示:必须在umount所有的文件系统后,才能成功执行

裸设备使用:    
1.先lvreate    
2. raw /dev/raw/raw0 /dev/mapper/vgname-lvname    
3.修改 /etc/sysconfig/rawdevices,添加:           /dev/raw/raw0 /dev/mapper/vgname-lvname     
4.执行命令; service rawdevices restart,使得/etc/sysconfig/rawdevices文件中的裸设备配置生效     
5.执行/sbin/schkconfig  rawdevices on 使得系统重启后,裸设备能自动加载     
6.修改裸设备的属主,使得相应权限的用户对裸设备有读写权限       chown -R owner:group  /dev/raw/raw0     
7.将修改裸设备属主修改命令加入到系统启动执行脚本/etc/rc.local中,使得系统启动后裸设备的属主保持不变.

linux挂载原有LVM盘

范例:

1、pvs
  [root@localhost yuanbor]# /sbin/pvs 检查是否有重名的VG组
  2、vgrename
  [root@localhost yuanbor]#/sbin/vgrename [VG UUID] /dev/VolGroup01 #将重复的VG组 根据UUID改为 VolGroup01
  [root@localhost yuanbor]# /sbin/pvs #检查 修改结果
  3、lvscan
  [root@localhost sdb3]# /sbin/lvscan #检查 逻辑卷状态
  可以看到新修改的VolGroup01是inactive状态。
  4、vgchange
  [root@localhost sdb3]# /sbin/vgchange -ay /dev/VolGroup01 #激活改名后的VolGroup01
  [root@localhost mnt]# /sbin/lvscan #检查激活结果
  5、mount
  [root@localhost mnt]# mount /dev/VolGroup01/LogVol00 /mnt/sdb3 #挂载逻辑卷 挂载点可以自定义

注意:1不一定能够显示错误,如果不报错可以使用vgdisplay命令查找 VG UUID
找到后继续 2

在进行下一步之前,我们说明一下pv、vg、lv的关系。

一个硬盘f分区组成一个pv(物理卷)

一个或者多个pv组成一个vg(卷组)

一个vg可以划分出多个lv(逻辑卷)

5,创建pv

 输入:pvcreate /dev/xvdb1

此时的磁盘分区是xvdb1,而不是xvdb了。

6,创建vg

输入:vgcreate vg_group /dev/xvdb1

此处的vg_group是vg组的名字,可以自定义。

查看创建的vg

输入:vgdisplay

 可以看到已经成功创建

7,创建lv

输入:lvcreate -L 60G -n vg_usr vg_group

-L后面是要分给lv的大小

-n新建一个名字为vg_usr的lv

使用的vg是vg_group

8,格式化lv

查看系统的文件类型

输入:df -Th

文件类型是ext4

格式化lv

 输入:mkfs.ext4 /dev/vg_group/vg_usr

mkfs后面是文件类型。

9,编辑/etc/fstab文件,创建磁盘开机自动挂载

vim /etc/fstab

在文件最后加入一行

第一列:要挂载的磁盘

第二列:挂载点

第三列:文件类型

第四列:挂载选项,详细参考man mount. 下面列出一些常用的选项: 
   auto: 系统自动挂载,fstab默认就是这个选项 
   ro: read-only 
   rw: read-write 
   defaults: rw, suid, dev, exec, auto, nouser, and async. 

第五列:为dump选项,设置是否让备份程序dump备份文件系统,0为忽略,1为备份。

第六列:为fsck选项,告诉fsck程序以什么顺序检查文件系统,0为忽略。

10,重新挂载

mount -a

11,查看是否挂载成功

 至此,新磁盘创建lvm已完成,后续可以随时扩容lvm。

20171220更新

扩容lvm

lvextend -L +100G /dev/mapper/vg_group-vg_user

之后使用resize2fs进行更新

resize2fs /dev/mapper/vg_group-vg_user

即可扩容完成

如果resize2fs出现错误:

resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/vg_group-vg_user
Couldn't find valid filesystem superblock.

则使用下面的方式

xfs_growfs /dev/mapper/vg_group-vg_user

猜你喜欢

转载自www.cnblogs.com/klb561/p/10828608.html
今日推荐