LVM讲解(扩容缩容)

概念:LVM是logical volume manager的缩写(逻辑分区),方便对于对圈组、逻辑卷的大小进行调整,更进一步调整文件系统的大小。

优点:在使用很多硬盘的大系统中,使用LVM主要是方便管理、增加了系统的扩展性。

准备磁盘分区,先把硬盘umount

第一步:

添加硬盘进行分区:

[root@localhost ~]# fdisk /dev/sdb

第二步:创建三个新分区,分别是1G, n

第三步:-t 改变分区类型为8e(LVM),只有这样才可以做物理卷

命令(输入 m 获取帮助):t

分区号 (1,2,默认 2):1

Hex 代码(输入 L 列出所有代码):8e

.

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 2099199 1048576 8e Linux LVM

/dev/sdb2 2099200 4196351 1048576 8e Linux LVM

/dev/sdb3 4196352 6293503 1048576 8e Linux LVM

接下来准备物理卷

安装个命令 pvcreate(创建物理卷、列出当卡物理卷、删除物理卷)

如果在这里你知道这个命令,但是你安装不了这个包,那就使用如下命令安装,利用通配的命令安装

[root@localhost ~]# yum provides "/*/pvcreate" 根下所有文件里面pvcreate的命令

[root@localhost ~]# yum install -y lvm2 #ok,依赖包都安装完毕

如果创建完分区后,目录下并没有这个路径,使用 partprobe添加进去

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

ls: cannot access /dev/sdb1: No such file or directory #没有那个文件或目录

[root@localhost ~]# partprobe 添加分区的路径,自动生成

[root@localhost ~]# ls /dev/sdb1 查看分区是否存在

/dev/sdb1

接下来把三个分区,全部改成物理卷

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

Physical volume "/dev/sdb1" successfully created. #已成功创建物理卷

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

Physical volume "/dev/sdb2" successfully created. #已成功创建物理卷

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

Physical volume "/dev/sdb3" successfully created. #已成功创建物理卷

**物理机创建完成以后,用pvdisplay查看一下物理卷**

[root@localhost ~]# pvdisplay

或者root@localhost ~]# pvs

创建卷组vgcreate vg1 /dev/sdb1 /dev/sdb2,vg1是卷组的名字

[root@localhost ~]# vgcreate vg1 /dev/sdb1 /dev/sdb2

Volume group "vg1" successfully created #创建成功

查看卷组的信息 vgdisplay或者vgs

[root@localhost ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 2 0 0 wz--n- 1.99g 1.99g

vgremove 删除卷组的命令

创建逻辑卷

[root@localhost ~]# lvcreate -L 100M -n lv1 vg1

Logical volume "lv1" created. #创建成功

lvcreate创建逻辑卷,-L 100M指定大小,-n lv1 逻辑卷的名字,vg1从卷组里面调用出来

格式化成mkfs.ext4,适合做扩容

[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1

挂载逻辑卷

[root@localhost ~]# mount /dev/vg1/lv1 /mnt/ #挂载到/mnt/下

[root@localhost ~]# df -h #查看挂载

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 18G 1.1G 17G 7% /

devtmpfs 483M 0 483M 0% /dev

tmpfs 493M 0 493M 0% /dev/shm

tmpfs 493M 6.8M 486M 2% /run

tmpfs 493M 0 493M 0% /sys/fs/cgroup

/dev/sda1 197M 97M 100M 50% /boot

tmpfs 99M 0 99M 0% /run/user/0

/dev/mapper/vg1-lv1 93M 1.6M 85M 2% /mnt #这里名字怎么跟挂载的不一样呢,下面会解释

用ls -l 查看一下这俩个路径的依赖关系。

实际上这俩个路径都指向了一个文件

.

下面来做一下扩容的操作,先创建个目录和文件

[root@localhost ~]# mkdir /mnt/111 #创建个目录

[root@localhost ~]# touch /mnt/222.txt #创建个文件

[root@localhost ~]# echo "123123123" > /mnt/222.txt #给文件里追加文字

扩容逻辑卷

重新设置卷大小,先umount

[root@localhost ~]# lvresize -L 200M /dev/vg1/lv1

检查磁盘错误 (ext4执行)

[root@localhost ~]# e2fsck -f /dev/vg1/lv1

e2fsck 1.42.9 (28-Dec-2013)

Pass 1: Checking inodes, blocks, and sizes #检查inodes,块和大小

Pass 2: Checking directory structure #检查目录结构

Pass 3: Checking directory connectivity #检查目录链接

Pass 4: Checking reference counts #检查引用计数

Pass 5: Checking group summary information #检查组摘要信息

/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks

更新逻辑卷信息,如果不更新,再挂载的时候无法更新新的大小(ext4执行)

[root@localhost ~]# resize2fs /dev/vg1/lv1

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vg1/lv1 to 204800 (1k) blocks. #调整文件系统到204800(1K)块的大小

The filesystem on /dev/vg1/lv1 is now 204800 blocks long. #文件系统上 现在是204800大小。

挂载,在查看文件大小

[root@localhost ~]# !mount

mount /dev/vg1/lv1 /mnt/

[root@localhost ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 18G 1.1G 17G 7% /

devtmpfs 483M 0 483M 0% /dev

tmpfs 493M 0 493M 0% /dev/shm

tmpfs 493M 6.8M 486M 2% /run

tmpfs 493M 0 493M 0% /sys/fs/cgroup

/dev/sda1 197M 97M 100M 50% /boot

tmpfs 99M 0 99M 0% /run/user/0

/dev/mapper/vg1-lv1 190M 1.6M 175M 1% /mnt #注意这一行,容量是190M,已使用1.6M,可用175M. 修改完成。

再看看刚才创建的文件还存在吗

[root@localhost ~]# ls /mnt/

111 222.txt lost+found

[root@localhost ~]# cat /mnt/222.txt

123123123

缩减逻辑卷(xfs不支持)

先umount 不挂载

[root@localhost ~]# umount /mnt/

检查磁盘错误

[root@localhost ~]# e2fsck -f /dev/vg1/lv1

e2fsck 1.42.9 (28-Dec-2013)

Pass 1: Checking inodes, blocks, and sizes #检查inodes,块和大小

Pass 2: Checking directory structure #检查目录结构

Pass 3: Checking directory connectivity #检查目录链接

Pass 4: Checking reference counts #检查引用计数

Pass 5: Checking group summary information #检查组摘要信息

/dev/vg1/lv1: 13/25688 files (7.7% non-contiguous), 8899/102400 blocks

更新逻辑卷信息

[root@localhost ~]# resize2fs /dev/vg1/lv1 100M

resize2fs 1.42.9 (28-Dec-2013)

Resizing the filesystem on /dev/vg1/lv1 to 102400 (1k) blocks.

The filesystem on /dev/vg1/lv1 is now 102400 blocks long.

重新设置卷大小

[root@localhost ~]# lvresize -L 100M /dev/vg1/lv1

WARNING: Reducing active logical volume to 100.00 MiB.

THIS MAY DESTROY YOUR DATA (filesystem etc.)

Do you really want to reduce vg1/lv1? [y/n]: y #这里询问可能会对文件造成数据丢失,是否还需要执行,测试就选y就可以了

Size of logical volume vg1/lv1 changed from 200.00 MiB (50 extents) to 100.00 MiB (25 extents). #逻辑卷已从200M缩减成100M

Logical volume vg1/lv1 successfully resized. #调整大小成功**

然后lvs看一下逻辑卷大小是否修改完成

接下来挂载

[root@localhost ~]# mount /dev/vg1/lv1 /mnt/

↑↑↑↑↑ 如上内容只针对etf4、3、2 ↑↑↑↑↑

.

xfs文件扩容

首先 更新逻辑卷信息,需取消挂载umount

[root@localhost ~]# mkfs.xfs -f /dev/vg1/lv1

再次挂载,查看里面是否有文件(因为是空的,正常是没有) 创建个文件和目录

[root@localhost ~]# !mount #挂载

mount /dev/vg1/lv1 /mnt/

[root@localhost ~]# ls /mnt/ #查看挂载目录里是否有东西

[root@localhost ~]# mkdir /mnt/123 #创建目录123

[root@localhost ~]# touch /mnt/222.txt #创建文件222.txt

[root@localhost ~]# echo "213aa" > /mnt/222.txt 给文件222.txt追加内容

[root@localhost ~]# ls /mnt/ #查看目录下的文件及目录

123 222.txt

[root@localhost ~]# cat /mnt/222.txt #查看文件内容

213aa

lvs查看现在有多大

[root@localhost ~]# lvs

LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert

lv1 vg1 -wi-ao---- 100.00m #现有100M

注:xfs不需要卸载,直接添加大小即可,跟ext不一样。

扩容大小300M

[root@localhost ~]# xfs_growfs -L 300M /dev/vg1/lv1

现在查看 大小还没有变

xfs文件系统需要执行 xfs_growfs /dev/vg1/lv1

df -h 看挂载大小是否成功

ok,成功,300M

.

扩展卷组

查看现在的卷组大小 vgs

[root@localhost ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 2 1 0 wz--n- 1.99g <1.70g

之前分区分了3个,还有一个没有用,先扩容卷组

[root@localhost ~]# vgextend vg1 /dev/sdb3

Volume group "vg1" successfully extended

查看现在多大

[root@localhost ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg1 3 1 0 wz--n- <2.99g <2.70g

现在是3个G了

再重新设置卷大小

[root@localhost ~]# lvresize -L 100M /dev/vg1/lv1

磁盘阵列RAID

RAID-0

RAID 0没有数据冗余、没有奇偶校验。因此,如果一个硬盘坏掉了,整个RAID阵列的数据都没法正常使用了。它存在的意义在于加快读写速度,提升硬盘容量。通常在数据可靠性要求不高的情况下才会使用RAID 0。比如游戏、科学计算。

因为每个硬盘都可以独立读写,如果硬盘有n块,那么读写速度提升是n倍。

下图是RAID 0的数据分布方式:

RAID-1

RAID 1模式下,如果有n块硬盘,那么会把数据保存n份一模一样的。这样即使一份数据坏掉了,剩下的备份可以正常工作。性能方面,随机存取速度相当于所有硬盘的总和,写入性能和原来单个硬盘的性能一样。

RAID-1+0

这种模式全称是RAID-1加上RAID-0。它实现的原理如下图所示:

用几句话来描述吧。它相当于先把这些硬盘成对成对的用RAID-1方式组合起来,然后再把这些组合结果用RAID-0方式组合起来。这种模式下它支持高可用,又能有很好的读写性能。这种方式,由于需要存两份一模一样的数据,因此容量会损失一半。

这种方式是目前最常用的。

RAID-5

这种模式把每个数据块打散,然后均匀分布到各个硬盘。与RAID-4不同的是,它将奇偶校验的数据均匀的分散到不同的硬盘。这样如果有一个硬盘坏掉了,丢失的数据可以从奇偶校验里面计算出来。

通常RAID-5的容量会损失1/3,用来储存奇偶校验信息。

这种模式兼顾了成本、性能,也是比较常用的一种模式。

RAID-6

这种模式与其他模式的区别在于,它支持两块硬盘同时损坏,并且仍然能够正常工作。它有这般神奇的能力,是因为它保存了两种奇偶校验。一种是普通的XOR方式,跟RAID-5一样。另外一种比较复杂,需要消耗比较多的CPU。这种奇偶校验方式在后面再讲。

转载于:https://my.oschina.net/u/3991860/blog/2254706

2018-10-29 直播课笔记相关推荐

  1. 2018.10.15 直播笔记

    1 直播课不允许无故迟到.早退,有事请假,签到由大家自行截图,并发到有道云笔记中,最后把有道云笔记链接发到专贴. 截图需要分4部分,课前5分钟内.下课前5分钟内.中途休息时以及随机不定时截图,要求把上 ...

  2. 10天精读掌握:计算机组成与设计(COAD:Patterson and Hennessy) (第4天 2018/10.29)

    10天精读掌握:计算机组成与设计COAD:Patterson and Hennessy 第4天 2018/10.29 1. 第4次周计划概览 2. 今日学习成果 3. 今日时间表 4. 今日反思 5. ...

  3. 【一周头条盘点】中国软件网(2018.10.29~2018.11.2)

    每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 一周热点 2018年第二季度SaaS公有云市场研究报告 SEG发布了"2018年第二季度SaaS公共市场报告&qu ...

  4. 21日《家校合力,共育成长》直播课笔记

    21日孩子教育直播笔记 孩子的专注力取决于大脑结构,孩子小由于其脑触结构导致孩子容易被其他事情所吸引,5岁左右的孩子其专注力一般在10分钟左右.秒针法去确认孩子注意力的时间. 破坏孩子专注力的行为,在 ...

  5. 2018-12-14 直播课笔记

    0.nginx代理 反向代理的代码如下: 在虚拟主机中设置如下: 正向代理: Nginx正向代理配置执行说明 resolver 语法:resolver address; address为DNS服务器的 ...

  6. 《惢客创业日记》2018.10.29(周一) 中国只有一个雷军,却有千万个中小企业

    今天抽时间看了小米mix3的故宫发布会的视频回放.虽然,健康和时间都不允许我把精力花在这场发布会上,但自己还是有点忍不住,就利用晚上时间边走路锻炼身体.边看发布会. 从看罗辑思维<时间的朋友&g ...

  7. 【2018.10.4】CXM笔记(图论)

    .1.给你一个无向图,问这张图的最小割是否唯一.输出yes或no. 跑一边最大流,那么最小割的那些正向边一定满流(也就是过不了了).所以在残余网络上,从S到T和从T到S各广搜找一组最小割的边(即正向边 ...

  8. ssl提高组周一备考赛【2018.10.29】

    前言 想去德育基地- 成绩 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 111 2017myself2017myself20 ...

  9. 开课吧直播课笔记-疫情地图项目

    用Java定时关机,取消关机 public class Demo1 {public static void main(String[] args) throws IOException {// Run ...

最新文章

  1. 现半透明的popupwindow
  2. C指针--通过二级指针往回拉数据
  3. UVA - 12166 Equilibrium Mobile
  4. OpenLdap+MySQL笔记
  5. cmd命令行启动、停止IIS,打开iis net start w3svc
  6. 深度linux桌面启动器,在Deepin桌面系统启动器中创建“我的世界”启动项
  7. ffmpeg -视频旋转和高清转码示例
  8. 一个api请求的流程
  9. android 点击事件失效,安卓手机微信自带浏览器点击事件失效解决
  10. ADS1115的使用教程(IIC)
  11. android 蓝牙打印和网络打印
  12. osu计算机科学硕士,OSU的Computer Science and Engineering「俄亥俄州立大学计算机科学与工程系」...
  13. 清华计算机类专业介绍,清华大学研究生专业介绍:计算机技术
  14. sql中把字符串类型转化
  15. C#——Windows银行储蓄管理系统
  16. 《摄影测量学基础》光束法MATLAB程序
  17. 聆思CSK6视觉AI开发套件使用——AI手势识别+头肩识别+编译helloworld
  18. ANI漏洞微软官方补丁KB925902 下载
  19. GoogleMap的简单用法
  20. Struts2实现的吊炸天留言板系统(包含完整源+mysql数据库+bootstraps3)源码以及课程报告下载地址!

热门文章

  1. 太阳能电池板原理及工作原理
  2. 阿尔法小蛋机器人怎样_深入解密科大讯飞阿尔法小蛋智能云陪护机器人TYS1怎么样呢?评价如何?求助专业爆料评测...
  3. HDMI之InfoFrame
  4. 走位神器大全排行榜,你们是什么级别的关羽哥?
  5. 分布式事务seat对于sql语句的语法要求
  6. SSD与HDD、HHD的区别
  7. 电荷放大器+低通滤波器的设计
  8. python No such file or directory
  9. 计算机等级应用考试种类是什么,优·计算机等级考试分类练习题.doc
  10. [源码分享] HIVE表数据量统计邮件