linux硬盘的分区、格式化、挂载以及LVM

linux硬盘的分区、格式化、挂载以及LVM

扩容 PV

# 先查看物理设备是否能扩容
fdisk -l /dev/vda2 # 磁盘200G pvs # pv 设备用了100G,还有100G可以扩容
# 把 /dev/vda2 设备上还没用的100G使用上
pvresize /dev/vda2  # 重新刷新下 /dev/vda2 上的size
pvs # 展示 /dev/vda2 200G 了 lvextend -L +100G /dev/mapper/ao-root # 给 /dev/mapper/ao-root 这个 LV 扩充100G
resize2fs /dev/mapper/ao-root # ext3、ext4文件系统,使扩容生效
xfs_growfs /dev/
mapper/ao-root # xfs文件系统 使扩容生效
df -h # 查看库容后容量
 
# 如果插入一个新磁盘,/dev/vdb1
vgextend mapper /dev/vdb1  # /dev/vdb1 加入到 PV mapper 中

 

 

LVM简介
逻辑卷管理器(Logical Volume Manager),最早应用在IBM AIX系统上。

它的主要作用是动态分配磁盘分区及调整磁盘分区大小,并且可以让多个分区或者物理硬盘作为一个逻辑卷(相当于一个逻辑硬盘)来使用。

这种机制可以让磁盘分区容量划分变得很灵活。

LVM机制的基本概念
PV(Physical Volume,物理卷)
物理卷:物理卷处于LVM的最底层,可以是整个物理磁盘,也可以是硬盘中的分区。

整个硬盘,或使用fdisk等工具建立的普通分区.

包括许多默认4MB大小的PE(Physical Extent,基本单元)

VG(Volume Group,卷组)
卷组:可以看成单独的逻辑磁盘,建立在PV之上,是PV的组合。一个卷组中至少要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。

LV(Logical Volume,逻辑卷)
逻辑卷:相当于物理分区的/dev/hdaX。逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展或缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。

从卷组中分割出的一块空间,用于建立文件系统

PE(Physical Extent)
物理区域:物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。当多个PV组成一个VG时,LVM会在所有PV上做类似格式化的动作,将每个PV切成一块块的空间,这一块块的空间就称为PE, 通常是4MB。

 

逻辑卷的管理方法
LVM进行逻辑卷的管理时,创建顺序是pv->vg->lv。

首先创建一个物理卷(对应一个物理硬盘分区或者一个物理硬盘)
然后把这些分区或者硬盘加入到一个卷组中(相当于一个逻辑上的大硬盘)
再在这个大硬盘上划分分区lv(逻辑上的分区,就是逻辑卷)
最后,把lv逻辑卷格式化以后,就可以像使用一个传统分区那样,把它挂载到一个挂载点上
需要的时候,这个逻辑卷可以被动态缩放。
LVM的管理命令


主要命令的用法
pvcreate 设备名
vgcreate -s 8M 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L 大小 /dev/卷组名/逻辑卷名
lvreduce –L 大小 /dev/卷组名/逻辑卷名
-L参数指定了逻辑卷的大小,-n参数指定了逻辑卷的名称

使用命令行工具实现 LVM存储
准备物理卷

fdisk (type 0x8e linux LVM)
pvcreate /dev/sdb5
创建卷组

vgcreate –s 8M wgroup /dev/sdb5
创建和使用新逻辑卷

lvcreate –n wshare –L 100M /dev/wgroup
mkfs –t vfat /dev/wgroup/wshare
mkdir /mnt/wshare
add an entry to the /etc/fstab file: /dev/wgroup/wshare /mnt/wshare vfat defaults 0 0 5.mount –a
具体流程
建立LVM分区——fdisk
利用fdisk命令在 /dev/sdb上建立LVM类型的分区/dev/sdb1、/dev/sdb2。

fdisk /dev/sdb

使用相关指令创建分区:

n——创建分区 ;

p——创建主分区; e——创建扩展分区;

p——查看分区情况;t——修改分区类型(8e:LVM类型);

w——保存; q——退出;

其中选择编号(1,2,3,4)和选择分区大小

建立物理卷——pvcreate
物理卷直接建立在物理硬盘或者硬盘分区上,所以物理卷的设备文件使用系统中现有的磁盘分区设备文件的名称。

pvcreate /dev/sdb1 //创建物理卷
pydisplay /dev/sdb1 //显示指定物理卷的属性
建立卷组——vgcreate
在创建好物理卷后,建立卷组。

卷组设备文件使用/dev目录下与卷组同名的目录表示,该卷组中的所有逻辑设备文件都将建立在该目录下。

卷组中可以包含多个物理卷也可以只有一个物理卷

vgcreate vg0 /dev/sdb1 // 创建卷组vg0,vg0为要建立的卷组名称。
vgdisplay vg0 // 查看vg0信息
建立逻辑卷——lvcreate
建立好卷组后,可以使用命令lvcreate在已有卷组上建立逻辑卷。

逻辑卷设备文件位于其所在的卷组的卷组目录中。

lvcreate -L 20M -n lv0 vg0 // 创建逻辑卷
lvdisplay /dev/vg0/lv0
格式化逻辑卷:使用mkfs命令格式化新创建的逻辑卷。例如,如果你使用的是ext4文件系统:

mkfs.ext4 /dev/vg0/lv0
扩大卷组——vgextend
扩展卷组 当卷组中没有足够的空间分配给逻辑卷时,可以用给卷组增加物理卷的方法来增加卷组的空间

fdisk /dev/vda 创建新分区 (必须为LVM类型)
pvcreate /dev/vdaN 初始化分区
vgextend vgname /dev/vdaN 将新物理卷添加到现有卷组vgname
vgdisplay vgname 显示卷组状态
缩减卷组——vgreduce
vgreduce vgname /dev/vdaN 从卷组删除物理卷
扩展逻辑卷和ext4文件系统——lvextend,resize2fs
当逻辑卷的空间不能满足要求时,可以利用lvextend命令把卷组中的空闲空间分配到该逻辑卷以扩展逻辑卷的容量。

验证已挂载文件系统的当前大小 df -h /data
验证可用物理区块是否够用 vgdisplay vgname
使用部分或全部可用区块扩展逻辑卷 lvextend -L 128M /dev/vgname/lvname
扩展在/data 上挂载的关联文件系统 resize2fs -p /dev/vgname/lvname
验证以挂载文件系统 /data的新大小 df -h /data
减少逻辑卷和文件系统——lvreduce,resize2fs
解除挂载要减小的文件系统 umount /date
验证所有文件系统数据结构是否得到清理 fsck –f /dev/mapper/vgname-lvname
将文件系统大小调整为512M resize2fs –p /dev/mapper/vgname-lvname 512M
将逻辑卷减小到512M lvreduce –L 512M /dev/mapper/vgname-lvname
重新挂载/etc/fstab中列出的所有文件系统,包括现在较小的逻辑卷 mount –a
删除卷——lvremove
必需按照删除“逻辑卷-卷组-物理卷”的先后顺序来执行删除

lvremove /dev/vg0/lv0
vgremove vg0
pvremove /dev/sdb1
检查物理卷,卷组,逻辑卷——pyscan,vgscan,lvscan
pyscan
vgscan
lvscan
创建快照(数据备份)
快照是临时保留所更改的逻辑卷的原始数据的逻辑卷

快照提供原始卷的静态视图,从而能够以一致状态备份其数据

创建和使用快照进行备份

创建lvname名为snaplvname,大小为20M的新快照卷 lvcreate –s –n snaplv –L 20M /dev/vgname/lvname
挂载快照,并使备份程序指向新挂载点 mkdir /snapmount mount –ro /dev/vgname/snaplv /snapmount
验证快照逻辑卷的状态 lvs /dev/vgname/lvname
不在使用快照时,解除挂载并删除 umount /snapmount lvremove /dev/vgname/lvname
LVM应用示例
需求描述: 公司的邮件服务器由于用户数量众多,邮件存储需要大量的空间,考虑到动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷,挂载到“/mail”目录专门用于存放邮件数据

步骤: PV → VG → LV → 格式化,挂载使用文件系统

 

1. 转化物理卷
使用fdisk命令规划两个分区,类型设置为“8e” /dev/sdb1、/dev/sdc1
使用pvcreate命令转换上述分区为物理卷
[root@localhost ~]# fdisk -l /dev/sdb /dev/sdc | grep "LVM"

/dev/sdb1 1 9660 77593918+ 8e Linux LVM

/dev/sdc1 1 9660 77593918+ 8e Linux LVM

[root@localhost ~]# pvcreate /dev/sdb1

Physical volume "/dev/sdb1" successfully created

[root@localhost ~]# pvcreate /dev/sdc1

Physical volume "/dev/sdc1" successfully created

2. 创建卷组
使用vgcreate命令创建卷组mail_store
[root@localhost ~]# vgcreate mail_store /dev/sdb1 /dev/sdc1

Volume group "mail_store" successfully created

3. 创建逻辑卷
使用lvcreate命令创建逻辑卷 mail 从卷组mail_store上划出20GB空间
使用mkfs命令创建ext4文件系统
[root@localhost ~]# lvcreate -L 20G -n mail mail_store

/dev/cdrom: open failed: Read-only file system

Logical volume "mail" created

[root@localhost ~]# mkfs -t ext4 /dev/mail_store/mail

为逻辑卷扩容
使用lvextend命令为逻辑卷 mail扩充容量 从卷组 mail_store 上再划出10GB给逻辑卷mail
使用resize2fs命令更新系统识别的文件系统大小
[root@localhost ~]# lvextend -L +10G /dev/mail_store/mail

[root@localhost ~]# resize2fs –p /dev/mail_store/mail

为逻辑卷缩减
使用lvreduce命令为逻辑卷 mail缩减容量,必须先卸载
从卷组 mail_store 上缩小逻辑卷mail到10G
使用resize2fs命令更新系统识别的文件系统大小
使用fsck 命令清理文件系统数据结构
[root@localhost ~]# umount /mail

[root@localhost ~]# fsck –f /dev/mail_store/mail

[root@localhost ~]# resize2fs –p /dev/mail_store/mail 10G

[root@localhost ~]# lvreduce –L 10G /dev/mail_store/mail

[root@localhost ~]# mount -a

创建逻辑卷快照
lvcreate -L 512M -s -n snapshot dev/vg0/lv0

在挂载目录中创建一个文件,创建挂载在该目录下的逻辑卷快照,删除此文件,使用快照恢复:

1.挂载逻辑卷

mount /dev/vg0/lv0 /data

cd /data

touch a.txt

2.制作快照

lvcreate -L 500M -s -n lv0_snap /dev/vg0/lvo

3.删除文件

rm /data/a.txt

4.从快照中恢复文件

mkdir /datasnap

mount /dev/vg0/lv0_snap /datasnap

ls -al /datasnap

cp /datasnap/a.txt /data

5.删除快照

umount /datasnap

lvremove /dev/vg0/lv0_snap

配置本地y

 

 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生效)

#执行该重设大小,对于当前正在使用的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中,使得系统启动后裸设备的属主保持不变.

 

posted @ 2017-06-02 16:51  aaron_agu  阅读(1192)  评论(0编辑  收藏  举报