Linux 下磁盘管理--逻辑卷--LV

Linux 下磁盘管理--逻辑卷--LV,第1张

在Linux磁盘 *** 作中,如果磁盘写满,那么就需要对磁盘进行扩容。把数据写入到更大的磁盘中,这个工作量是非常大的,而且非常容易出现错误,危险性很高,那么我们就可以使用逻辑卷管理器(LVM)来对磁盘进行管理扩容。这样就可以很轻松的,没有危险的对数据进行移动。

我们来看看LVM比传统硬盘管理的优点:

1.灵活性容量:允许多个磁盘或分区作为一个逻辑卷。

2.可以伸缩的存储池:不必格式化,用命令可以直接修改逻辑卷。

3.在线数据的分配:可以在线移动数据,可以热插拔硬盘更换磁盘。

4.设备命名方便。

5.镜像卷:很方便的做数据镜像。

6.卷快照:快照会把逻辑卷的全部内容保存。

那么逻辑卷要怎么来创建呢,我们做如下步骤:

1.在创建逻辑卷前,必须要有一块物理磁盘做物理卷(PV)。

2.由一个或多个物理卷组成一个存储池,我们叫他卷组(VG)。

3.根据卷组中的空闲物理空间,建立逻辑卷(LV)。

上面3步时创建逻辑卷的具体思路。下面我们具体 *** 作:

创建逻辑卷步骤:

1.使用fdisk创建一个物理分区,t 选项设置类型为:linuxLVM

2.使用partprobe向内核注册新的分区。

3.创建物理卷pvcreate /dev/sdb1(需要创建的硬盘分区名,根据自己服务器查找)

4.创建卷组 vgcreate 卷组名 /dev/sdb1

5.创建逻辑卷 lvcreate -n 逻辑卷名 -L 卷组大小 卷组名

lvcreate -n abc -L 10G myvg

6.创建文件系统 mkfs.ext4 /dev/卷组名/逻辑卷名

mkfs.ext4 /dev/myvg/abc

7.创建永久挂载点(写入文件/etc/fstab),这一步就不在赘述,可以查阅我前一文章,有详细记载。

这样,我们的逻辑卷就创建成功了。

那我们怎么查看物理卷,卷组,逻辑卷呢

查看物理卷信息:pvdisplay /dev/sdb1

查看卷组信息:vgdisplay myvg

查看逻辑卷信息:lvdisplay /dev/myvg/abc

逻辑卷的扩容

如果在建立的卷组还有空间,就可以给逻辑卷扩容。那怎么做呢。

1.lvextend -L +10G /dev/myvg/abc

给逻辑卷 abc 扩容10G。减少容量直接把 + 变为 - 即可。

2.resize2fs /dev/myvg/abc针对ext4文件

xfs_growfs /dev/myvg/abc针对xfs文件

使扩容生效。

如果卷组空间不够,需先增加卷组空间,在对逻辑卷扩容。

1.准备物理磁盘 fdisk ,partprobe ,mkfs.ext4

2.创建物理卷

3.给原来的卷组增加物理卷 vgextend myvg /dev/sdc1,然后vgdiaplay

创建完成,那么我们需要删除逻辑卷,怎么做呢。

1.取消挂载,同时删除 /etc/fstab 文件下的挂载内容。

2.删除逻辑卷 lvremove /dev/myvg/abc

3.删除卷组 vgremove myvg

4.删除物理卷 pvremove /dev/sdb1

步骤和创建相反。

Linux下磁盘管理的逻辑卷就总结完毕。

Linux磁盘管理常用三个命令为df、du、fdisk。

df,全称:disk full,列出文件系统的整体磁盘使用量

du,全称:disk used,检查磁盘空间使用量

fdisk,用于磁盘分区。

1、df命令

检查文件系统的磁盘空间占用情况,可以利用该命令获取磁盘被占用了多少空间,目前还剩下多少空间等信息。

语法:df[-ahikHTm][目录或文件名]

参数:

-a 列出所有文件系统,包括系统特有的/proc等文件系统

-k 以KBytes的容量显示各文件系统

-m 以MBytes的容量显示各文件系统

-h 以较易阅读的格式自行显示,比如:GBytes、MBytes、KBytes

-H 以M=1000K取代M=1024K的进位方式

-T 显示文件系统类型

-i 不用磁盘容量,以inode的数量来显示。

2、du命令

也是查看使用空间的,但是与df命令不同的是,Linux du命令是对文件和目录磁盘使用的空间进行查看,和df命令有一定的区别。

语法:du[-ahskm]文件或目录名称

参数:

-a 列出所有的文件与目录容量

-h 以较易阅读的格式显示

-s 列出总量而已,而不列出每个各别的目录占用容量

-S 不包括子目录下的统计,与-s存在差别

-k 以KBytes列出容量显示

-m 以MBytes列出容量显示。

3、fdisk命令

fdisk是Linux的磁盘分区表 *** 作工具。

语法:fdisk[-l]装置名称

参数:

-l 输出后面接的装置所有的分区内容。若仅有fdisk -l时,则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

应用场景

Raid大家都知道是冗余磁盘的意思(Redundant Arrays of Independent Disks,RAID),可以按业务系统的需要提供高可用性和冗余性,目前市面上比较常见的是通过服务器的raid阵列卡来实现此功能。

通过硬件阵列卡实现raid具有可靠性高,性能好等特点,但是对于一般的企业而言硬件阵列卡固然好,如果大规模应用的话动辄几千上万的费用也不是他们所能承受的,难道就没有既能保证数据安全,又能减少费用支持的IT方案吗?当然有,软raid就可以实现这一需求。

实现步骤

软raid比较依赖 *** 作系统,所以他的劣势也显而易见,需要占用系统资源(主要是CPU资源)。目前在Linux和windows下软raid都比较常见了,Linux是通过mdadm实现的,windows下则在win2003之后通过磁盘管理来实现。

实验环境

一台centos 7.2 VM,主机名分别为host1,host1上挂载两块50G的数据盘,我们的实验就在这两块数据盘上完成。

P.S:需要强调的是生产环境下两块组raid的硬盘必须是同品牌同型号同容量的,否则极容易出现软raid失效的情况。

1.确认 *** 作系统是否安装了mdadm软件

[root@host1 ~]# rpm -qa |grep mdadm

mdadm-3.3.2-7.el7.x86_64

2.对两块数据盘进行分区,并设置分区类型为raid

fdisk命令只能对容量在2T以下的硬盘进行分区,如果超过2T则需要使用parted工具了。Parted命令以后会介绍使用方法,本节不赘述了。

在fdisk下raid的分区类型代码是fd,在parted工具下首先需要使用mklabel将磁盘格式由MBR改成GPT,然后才能使用mkpart命令进行分区,分完区之后使用set设置分区flag为raid即可。

3.使用mdadm命令创建raid1

可以看到创建时有个Note的提示,是说软raid不能当启动设备,这就是软raid比较鸡肋的地方了。

mdadm -C /dev/md0 -ayes -l1 -n2 /dev/xvd[b,c]1

命令说明:

-C创建阵列

-a同意创建设备,如不加此参数时必须先使用mknod 命令来创建一个RAID设备,不过推荐使用-a yes参数一次性创建

-l阵列模式

-n阵列中活动磁盘的数目,该数目加上备用磁盘的数目应该等于阵列中总的磁盘数目

/dev/md0阵列的设备名称,如果还有其他阵列组可以以此类推;

创建完成后可以使用cat /proc/mdstat查看阵列状态:

下图中第一次查看的时候提示resync完成了95.7%,第二次查询的时候两块盘才真正同步完。

也可以使用mdadm -D /dev/md0查看阵列组的状态

4.创建md0的配置文件

echo DEVICE /dev/sd{a,b}1 >> /etc/mdadm.conf

mdadm -Evs >> /etc/mdadm.conf

mdadm运行时会自动检查/etc/mdadm.conf 文件并尝试自动装配,因此第一次配置raid后可以将信息导入到/etc/mdadm.conf 中。

5.使用/dev/md0

在/dev/md0上创建文件,然后挂载进行使用。

mkfs.ext4 /dev/md0


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7086748.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-01
下一篇2023-04-01

发表评论

登录后才能评论

评论列表(0条)

    保存