zoukankan      html  css  js  c++  java
  • Linux Sever简单笔记(第八堂课)之linux下的磁盘和文件系统管理及划分区还有LVM逻辑分区的相关命令

    8章Linux下的磁盘和文件系统管理

    基本磁盘管理 

    Linux下的文件系统管理

    Linux下的交换分区

    磁盘配额的管理 

    LVM管理

    磁盘分区表示 

    Linux中将硬盘、分区等设备均表示为文件

    硬盘和分区的结构

    确认系统中的磁盘设备 

    fdisk命令

    格式:

    fdisk -l [磁盘设备]

    [root@centos7 ~]# fdisk -l

    磁盘 /dev/sda21.5 GB, 21474836480 字节,41943040 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理)512 字节 / 512 字节

    I/O 大小(最小/最佳)512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0x000bbb04

    设备 Boot Start End Blocks Id System

    /dev/sda1 * 2048 2099199 1048576 83 Linux

    /dev/sda2 2099200 41943039 19921920 8e Linux LVM

    例如:

    查看添加的硬盘,查看磁盘分区

    另一种方式

    另一种方式

    还有一种方法

    规划硬盘中的分区 

    fdisk命令

    用途:在交互式的操作环境中管理磁盘分区

    格式:fdisk [磁盘设备] p

    交互模式中的常用指令

    ⚫ a:标记启动分区

    ⚫ p:列表查看分区信息

    ⚫ n:新建分区

    ⚫ d:删除分区

    ⚫ t:变更分区类型

    ⚫ w:保存分区设置并退出

    ⚫ q:放弃分区设置并退出

    例如:

    对磁盘进行分区

     

    p查看

    添加容量

    查看

    写入分区

    Linux下文件系统 

    文件系统:

    操作系统用来管理和存储文件的办法。

    从系统角度讲,文件系统对文件存储空间进行组织和分配,并对文件的存储进行保护和检查。

    从用户角度来讲,文件系统可以帮助用户建立文件,并对文件的读,写和删除操作提供保护和控制。

    Linux的文件系统

    ⚫ Linux中的一切都是文件。目录只是特殊类型的文件。硬件设备驱动程序和分区也用文件表示。

    ⚫ Linux支持的文件系统类型

    ◆ ext2/3/4xfsfatiso9660cramfs

    例如:

    显示文件系统类型

    显示 i节点

    查看磁盘合并命令(最清晰)文件系统类型,容量大小

    查看文件系统类型

    除了x  xfs的其他文件类型

    Linux下的文件系统 

    查看所有的文件系统类型

    [root@centos7 ~]# parted -l

    Model: VMware, VMware Virtual S (scsi)

    Disk /dev/sda: 21.5GB

    Sector size (logical/physical): 512B/512B

    Partition Table: msdos

    Disk Flags:

    Number Start End Size Type File system 标志

    1 1049kB 1075MB 1074MB primary xfs 启动

    2 1075MB 21.5GB 20.4GB primary lvm

    例如:

    显示分区(每个磁盘分别显示)

    Linux的文件系统 

    Ext2/Ext3/Ext4(Extended File System)

    ⚫ Ext2GNU/Linux系统中标准的文件系统。这是Linux中使用最多的一种文件系统,它是专 门为Linux设计的,拥有极快的速度和极小的CPU占用率。

    ⚫ Ext3Ext2的下一代,也就是保有Ext2的格式之下再加上日志功能。

    ⚫ Ext4Linux系统下的日志文件系统,是Ext3文件系统的后继版本。

    Linux的文件系统

    XFS

    ⚫ XFS一种高性能的日志文件系统,XFS是一个64位文件系统,最大支持 8exbibytes 1字节 的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。对于一个32Linux系统, 文件和文件系统的大小会被限制在 16tebibytes

    ◆ XFS最初被合并到Linux 2.4主线中,这使得XFS几乎可以被用在任何一个Linux系统上。Arch, Debian, Fedora, openSUSE, Gentoo, Kate OS, Mandriva,Slackware, Ubuntu, VectorLinuxZenwalk的安装程序中都可选择 XFS作为文件系统,但由于默认的启动管理器GRUB中存在bug,以上发行版中只有少数几个允许用户在 /boot 挂 载点(引导目录)上使用XFS文件系统。

    ◆ FreeBSD200512月获得了对XFS的只读支持,并在次年6月引入了试验性的写支持。不过这些只是为了方便 用户从Linux上迁移到FreeBSD上,并不是为了把XFS作为主打文件系统使用。Red Hat Enterprise Linux 5.4 64 位版的内核完整支持XFS,但未包含创建和使用XFS的命令行工具(CentOS正在进行这方面的尝试),原因是这 些软件包还不够稳定。

    Linux支持的其他文件系统 

    FAT(FAT16、FAT32) 

    提供对MS-DOS的文件系统的支持

    iso9660

    标准CD-ROM文件系统

    cramfs

    一个只读文件系统,在嵌入式系统中应用很广

    NTFS

    ⚫ New Technology File System,是 Windows NT 环境的文件系统。

    文件系统管理 

    磁盘分区格式化

    格式化成Ext4类型

    ◆ mkfs.ext4 磁盘分区

    格式化vFAT格式

    ◆ mkfs.vfat 磁盘分区

    例如:

    进行格式化

    文件系统的挂载与卸载 

    挂载

    ⚫ mount 磁盘分区(包含文件系统) 挂载点(目录名

    卸载

    ⚫ umount 挂载点(目录名)

    文件系统的挂载与卸载——开机自动挂载 

    更改系统开机自动加载文件

    [root@centos7 ~]# mkfs.xfs /dev/sdb1

    [root@centos7 ~]# mkdir /fsdir

    [root@centos7 ~]#vi /etc/fstab 添加一列

    12 /dev/sdb1 /fsdir xfs defaults 0 0 

    测试

    方法1:不重新启动

    [root@centos7 ~]# mount -a

    [root@centos7 ~]# df -h

    方法2:重新启动计算机

    [root@centos7 ~]# df -h

    例如:

    进行格式化分区

    创建目录

    将其挂载在这上

    检查是否挂载成功

    查看mount输出  显示最后一行

    查看文件系统类型

    进入目录

    添加

    vim   /etc/fstab

    验证

    卸载分区并查看

    fdisk

    删除第二分区

     

     

    更新硬盘分区表

     

    文件系统的挂载与卸载—— 按需加载 2-1 

    准备条件

    [root@centos7 ~]# yum install -y autofs

    [root@centos7 ~]# mkfs.xfs /dev/sdb2

    [root@centos7 ~]# mkdir /autodir 

    修改主配置文件

    [root@centos7 ~]# vi /etc/auto.master 增加一行

    29 /autodir /etc/auto.misc --timeout=20 

    修改挂载配置信息文件

    [root@centos7 ~]# vi /etc/auto.misc 增加一行

    16 test -fstype=xfs :/dev/sdb2

    文件系统的挂载与卸载—— 按需加载 2-2 

    启动服务进行测试

    [root@centos7 ~]# systemctl start autofs

    [root@centos7 ~]# cd /autodir/test

    [root@centos7 test]# df –h

    文件系统 容量 已用 可用 已用% 挂载点 ……

    /dev/sdb2 1.1G 33M 1005M 4% /autodir/test

    例如:

    创建一个G的分区

    sdb3

    分区格式化

    编辑两个文件

    vim /etc/auto.master

    第一个:

    进入修改

    第二个:

    vim /etc/auto.misc

    添加:

    启动服务

    将服务设置为开机自动启动

    在另一个终端

    进入test目录

    df -hT

    查看一下test挂载情况

    退出test

    查看是否自动卸载

    df -hT

    发现已经自动卸载

    Linux下的交换分区 

    SWAP分区

    ⚫ SWAP(交换)分区是一种通过在硬盘中预先划分一定的空间,然后将把内存中暂时不常用 的数据临时存放到硬盘中,以便腾出物理内存空间让更活跃的程序服务来使用的技术,其设 计目的是为了解决真实物理内存不足的问题。但由于交换分区毕竟是通过硬盘设备读写数据 的,速度肯定要比物理内存慢,所以只有当真实的物理内存耗尽后才会调用交换分区的资源。

    ⚫ 在生产环境中,交换分区的大小一般为真实物理内存的2倍

    Linux下的交换分区 

    创建swap分区

    [root@centos7 ~]# fdisk -l /dev/sdb

    设备 Boot Start End Blocks Id System ……

    /dev/sdb10 16791552 20971519 2089984 83 Linux

    [root@centos7 ~]# mkswap /dev/sdb10

    正在设置交换空间版本 1,大小 = 2089980 KiB

    无标签,UUID=5edcdbb5-edfd-4ae8-9074-5366d640ca98

    Linux下的交换分区 

    启用swap分区并测试

    [root@centos7 ~]# free -m

    total used free shared buff/cache available

    Mem: 972 140 728 7 103 706 Swap: 2047 0 2047

    [root@centos7 ~]# swapon /dev/sdb10

    [root@centos7 ~]# free -m

    total used free shared buff/cache available

    Mem: 972 141 726 7 103 705

    Swap: 4088 0 4088

    [root@centos7 ~]# tail -1 /etc/fstab

    /dev/sdb10 swap swap defaults 0 0

    练习

    sdb下创建swap分区

     

     

     

     

    修改类型

    L查看磁盘代码

    小写p查看

     

    检查硬盘分区情况

    格式化分区

    报错

    更新

    格式化

    添加swap

    查看当前系统内存

    swap加入swap分区中

    查看

    Vi /etc/fstab

    更改fstab文件

    重启

    进行

    查看当前系统内存

    制作和使用ISO镜像文件 

    制作ISO镜像文件

    [root@centos7 ~]# dd if=/dev/cdrom of=/root/centos7.7.iso

    记录了9109504+0 的读入

    记录了9109504+0 的写出

    4664066048字节(4.7 GB)已复制,61.2967 秒,76.1 MB/

    [root@centos7 ~]# ll centos7.7.iso

    -rw-r--r-- 1 root root 4664066048 1017 22:15 centos7.7.iso 

    使用ISO镜像文件

    [root@centos7 ~]# mount -o loop centos7.7.iso /dvd/

    mount: /dev/loop0 写保护,将以只读方式挂载

    [root@centos7 ~]# df -h

    文件系统 容量 已用 可用 已用% 挂载点

     /dev/loop0 4.4G 4.4G 0 100% /dvd

    例如:

    挂载文件

     

     

    配置用户磁盘配额 

    进入配额目录检查配额文件系统,生成配额文件

    [root@centos7 ~]# cd /fsdir/

    [root@centos7 fsdir]# quotacheck -avug

    quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to

    avoid running quotacheck after an unclean shutdown.

    quotacheck: Scanning /dev/sdb1 [/fsdir] done

    quotacheck: Cannot stat old user quota file /fsdir/aquota.user: 没有那个文件或目录. Usage will not be subtracted.

    quotacheck: Cannot stat old group quota file /fsdir/aquota.group: 没有那个文件或目录. Usage will not be subtracted.

    quotacheck: Cannot stat old user quota file /fsdir/aquota.user: 没有那个文件或目录. Usage will not be subtracted.

    quotacheck: Cannot stat old group quota file /fsdir/aquota.group: 没有那个文件或目录. Usage will not be subtracted.

    quotacheck: Checked 3 directories and 0 files

    quotacheck: Old file not found.

    quotacheck: Old file not found.

    [root@centos7 fsdir]# ls aquota.group

    aquota.user lost+found

    例如:

    格式化为ex4

    重新加载

    vim /etc/fstab

    df -hT挂载情况

    运行,扣他。

    添加用户

    配置用户磁盘配额 

    设置用户磁盘配额

    [root@centos7 fsdir]# edquota -u rose

    1 Disk quotas for user rose (uid 1000):

    2 Filesystem blocks soft hard inodes soft hard

    3 /dev/sdb1 0 8M 10M 0 2 3 

    例如:

    进入fsdir

    通过命令进入rose的磁盘配额

    修改文件

     

    设置宽限时间

    [root@centos7 fsdir]# edquota –t

    1 Grace period before enforcing soft limits for users:

    2 Time units may be: days, hours, minutes, or seconds

    3 Filesystem Block grace period Inode grace period

    4 /dev/sdb1 7days 7days

    例如:

    查看宽限期

    配置用户磁盘配额 

    设置配额目录适当的权限

    [root@centos7 fsdir]# ll -d /fsdir/

    drwxr-xr-x 3 root root 4096 1017 23:10 /fsdir/

    [root@centos7 fsdir]# chmod 1777 /fsdir/

    [root@centos7 fsdir]# ll -d /fsdir/

    drwxrwxrwt 3 root root 4096 1017 23:10 /fsdir/

    例如:

    查看权限

     

    激活配额

    [root@centos7 fsdir]# quotaon /fsdir/

    启用磁盘配额

    磁盘配额测试 

    使用rose登陆进行测试

    [rose@centos7 ~]$ cd /fsdir/

    [rose@centos7 fsdir]$ ll -h

    总用量 8.9M

    -rw-r--r-- 1 root root 8.9M 1017 23:24 httpd-2.4.41.tar.gz

    ……

    [rose@centos7 fsdir]$ cp httpd-2.4.41.tar.gz rose1

    sdb1: warning, user block quota exceeded.

    [rose@centos7 fsdir]$ cp httpd-2.4.41.tar.gz rose2

    sdb1: write failed, user block limit reached.

    cp: 写入"rose2" 出错: 超出磁盘限额

    cp: 扩展"rose2" 失败: 超出磁盘限额

    例如:

    rose身份登录

     

    再创建一个

     

     

     

     

     

    XFS文件系统下的磁盘配额 

    xfs_quota命令

    ⚫ xfs_quota命令是一个专门针对XFS文件系统来管理quota磁盘容量配额服务而设计的命令。

    格式为“xfs_quota [参数] 配额 文件系统

    ◆ -c 参数用于以参数的形式设置要执行的命令

    ◆ -x 参数是专家模式,让运维人员能够对quota服务进行更多复杂的配置 p 启用配额功能

    [root@centos7 ~]# tail -1 /etc/fstab

    /dev/sdb1 /xfsqt xfs defaults,uquota,gquota 0 0

    例如:

    Xfs磁盘分区

    Xfs分区

     

     

    重启

    检查磁盘

    XFS文件系统下的磁盘配额 

    查看配额信息

    [root@centos7 ~]# xfs_quota -x -c report /xfsqt/

    User quota on /xfsqt (/dev/sdb1)

    Blocks

    User ID Used Soft Hard Warn/Grace

    ---------- --------------------------------------------------

    root 0 0 0 00 [--------]

    Group quota on /xfsqt (/dev/sdb1)

    Blocks

    Group ID Used Soft Hard Warn/Grace

    ---------- --------------------------------------------------

    root 0 0 0 00 [--------]

    报告磁盘信息

    添加用户

    XFS文件系统下的磁盘配额 

    配置磁盘配额

    [root@centos7 ~]# xfs_quota -x -c 'limit bsoft=8M bhard=10M isoft=2 ihard=3 tom' /xfsqt/

    [root@centos7 ~]# xfs_quota -x -c report /xfsqt/

    User quota on /xfsqt (/dev/sdb1)

    Blocks

    User ID Used Soft Hard Warn/Grace

    ---------- --------------------------------------------------

    root 0 0 0 00 [--------]

    tom 0 8192 10240 00 [--------]

    Group quota on /xfsqt (/dev/sdb1)

    Blocks

    Group ID Used Soft Hard Warn/Grace

    ---------- --------------------------------------------------

    root 0 0 0 00 [--------]

    磁盘配额报告

    XFS文件系统下的磁盘配额 

    配额测试

    [root@centos7 xfsqt]# chmod 1777 /xfsqt/

    [root@centos7 xfsqt]# su tom

    [tom@centos7 xfsqt]$ ll

    总用量 9052

    -rw-r--r-- 1 root root 9267917 1015 21:30 httpd-2.4.41.tar.gz [tom@centos7 xfsqt]$ cp httpd-2.4.41.tar.gz tom1

    [tom@centos7 xfsqt]$ cp httpd-2.4.41.tar.gz tom2

    cp: 写入"tom2" 出错: 超出磁盘限额

    cp: 扩展"tom2" 失败: 超出磁盘限额

    [tom@centos7 xfsqt]$ touch tom3

    touch: 无法创建"tom3": 超出磁盘限额

    更改目录权限

    验证

     

     

    查看文件

    删除文件

    通过以上磁盘和文件系统管理的截图实验,另配一个实验(以及实验相关的命令)供自己检测

    1,添加 10G 硬盘,为硬盘分三个分区:
    分区1:1G ext4 挂载至 /part-ext4
    分区2:2G xfs 挂载至 /part-xfs
    分区3:2G swap (代码82)
    分别设置分区1,分区2 可以开机自动挂载,启用swap分区3
    [root@localhost ~]# fdisk /dev/sdb
    [root@localhost ~]# partprobe
    [root@localhost ~]# mkfs.ext4 /dev/sdb1
    [root@localhost ~]# mkfs.xfs /dev/sdb2
    [root@localhost ~]# mkswap /dev/sdb3
    [root@localhost ~]# mkdir /part-ext4
    [root@localhost ~]# mkdir /part-xfs
    [root@localhost ~]# mount /dev/sdb1 /part-ext4
    [root@localhost ~]# mount /dev/sdb2 /part-xfs
    [root@localhost ~]# free -m
    [root@localhost ~]# swapon /dev/sdb3
    [root@localhost ~]# free -m

    [root@localhost ~]# vim /etc/fstab

    添加下面三行
    /dev/sdb1 /part-ext4 ext4 defaults 0 0
    /dev/sdb2 /part-xfs xfs defaults 0 0
    /dev/sdb3 swap swap defaults 0 0
    [root@localhost ~]# reboot
    [root@localhost ~]# df -hT

    2,创建一个逻辑分区 /dev/sdb5 分区5:2G
    配置 autofs 自动挂载至目录 /autodir/test 并设置目录20秒不被使用时自动卸载

    [root@localhost ~]# fdisk /dev/sdb
    Device Boot Start End Blocks Id System
    /dev/sdb1 2048 2099199 1048576 83 Linux
    /dev/sdb2 2099200 6293503 2097152 83 Linux
    /dev/sdb3 6293504 10487807 2097152 82 Linux swap / Solaris
    /dev/sdb4 10487808 20971519 5241856 5 Extended
    /dev/sdb5 10489856 14684159 2097152 83 Linux

    [root@localhost ~]# partprobe /dev/sdb
    [root@localhost ~]# mkfs.xfs /dev/sdb5

    [root@localhost ~]# rpm -q autofs

    [root@localhost ~]# vim /etc/auto.master
    修改第七行
    /autodir /etc/auto.misc --timeout=20

    [root@localhost ~]# vim /etc/auto.misc
    在文尾添加一行
    test -fstype=xfs :/dev/sdb5

    [root@localhost ~]# systemctl start autofs
    [root@localhost ~]# systemctl enable autofs

    [root@localhost ~]# df -hT
    [root@localhost ~]# cd /autodir/test
    [root@localhost test]# df -hT
    [root@localhost test]# cd
    等20秒后
    [root@localhost ~]# df -hT

    3,将 Centos 7 光盘制作成 iso 镜像文件,并将镜像文件挂载至 /dvd 目录

    [root@localhost ~]# dd if=/dev/cdrom of=/root/centos7.iso
    [root@localhost ~]# mkdir /dvd
    [root@localhost ~]# mount -o loop centos7.iso /dvd
    [root@localhost ~]# mount | tail -1
    /root/centos7.iso on /dvd type iso9660 (ro,relatime)

    4,为 /part-ext4 目录配置磁盘配额,设置用户 li 的磁盘软配额为 8M 硬配额为 10M
    i节点软配额 2 硬配额 3 ,并经过验证

    [root@localhost ~]# vim /etc/fstab
    修改 /part-ext4 自动挂载行
    /dev/sdb1 /part-ext4 ext4 defaults,usrquota,grpquota 0 0
    [root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1 /part-ext4

    [root@localhost ~]# useradd li
    [root@localhost ~]# passwd li

    [root@localhost ~]# quotacheck -avug
    [root@localhost ~]# cd /part-ext4
    [root@localhost part-ext4]# ls -a
    . .. aquota.group aquota.user lost+found

    [root@localhost part-ext4]# edquota -u li
    /dev/sdb1 0 8M 10M 0 2 3

    [root@localhost part-ext4]# cd
    [root@localhost ~]# ll -d /part-ext4
    [root@localhost ~]# chmod 1777 /part-ext4
    [root@localhost ~]# quotaon /part-ext4

    验证:
    [root@localhost ~]# su - li
    [li@localhost ~]$ dd if=/dev/zero of=/part-ext4/test bs=1M count=9
    成功,有警告
    [li@localhost ~]$ dd if=/dev/zero of=/part-ext4/test2 bs=1M count=2
    失败,超过磁盘硬配额
    [li@localhost ~]$ cd /part-ext4
    [li@localhost part-ext4]$ rm -rf test*
    [li@localhost part-ext4]$ touch test1 test2
    [li@localhost part-ext4]$ touch test3
    成功,有警告
    [li@localhost part-ext4]$ ls
    aquota.group aquota.user lost+found test1 test2 test3
    [li@localhost part-ext4]$ touch test4
    失败,超过磁盘硬配额
    [li@localhost part-ext4]$ ls
    aquota.group aquota.user lost+found test1 test2 test3
    [li@localhost part-ext4]$ quota -u li
    [li@localhost part-ext4]$ logout

    5,为 /part-xfs 目录配置磁盘配额,设置用户 li 的磁盘软配额为 20M 硬配额为 30M
    i节点软配额 2 硬配额 3,并经过验证

    [root@localhost ~]# vim /etc/fstab
    /dev/sdb2 /part-xfs xfs defaults,usrquota,grpquota 0 0
    [root@localhost ~]# reboot //必须重启生效

    [root@localhost ~]# chmod 1777 /part-xfs
    [root@localhost ~]# xfs_quota -x -c report /part-xfs
    [root@localhost ~]# xfs_quota -x -c "limit bsoft=20M bhard=30M isoft=2 ihard=3 li" /part-xfs
    [root@localhost ~]# xfs_quota -x -c "report -ubih" /part-xfs

    验证:
    [root@localhost ~]# su - li
    [li@localhost ~]$ dd if=/dev/zero of=/part-xfs/test1 bs=1M count=25
    成功,没有警告
    [li@localhost ~]$ dd if=/dev/zero of=/part-xfs/test2 bs=1M count=10
    失败,超过磁盘硬配额

    [li@localhost part-xfs]$ rm -rf *
    [li@localhost part-xfs]$ touch test1 test2
    [li@localhost part-xfs]$ touch test3
    成功,没有警告
    [li@localhost part-xfs]$ touch test4
    touch: cannot touch ‘test4’: Disk quota exceeded
    失败,超过磁盘硬配额
    [li@localhost part-xfs]$ logout

    LVM(逻辑卷管理器)

    逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建 初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。 p LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组, 可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的底层架构和 布局,就可以实现对硬盘分区的动态调整。

     

    LVM(逻辑卷管理器) 

    LVM基本概念

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

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

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

    LVM(逻辑卷管理器) 

    LVM基本概念

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

    ⚫ LE(Logical Extent) 逻辑区域:逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区 域的大小取决于逻辑卷所在卷组中的物理区域大小。LE的大小为PE的倍数(通常为1:1)

    LVM(逻辑卷管理器) 

    LVM的基本概念

    ⚫ VGDA(Volume Group Descriptor Area)卷组描述区域:存在于每个物理卷中,用于描述 该物理卷本身、物理卷所属卷组、卷组中的逻辑卷以及逻辑卷中物理区域的分配等所有的信 息,卷组描述区域是在使用pvcreate命令建立物理卷时建立的。

    LVM(逻辑卷管理器) 

    LVM的管理方法

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

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

    ⚫ LVM进行逻辑卷的管理时,删除的顺序是lv->vg- >pv。

    LVM(逻辑卷管理器) 

    LVM 的管理命令

     

    LVM(逻辑卷管理器)配置 

    添加硬盘并且分区

    [root@centos7 ~]# fdisk -l /dev/sdb

    磁盘 /dev/sdb2147 MB, 2147483648 字节,4194304 个扇区

    Units = 扇区 of 1 * 512 = 512 bytes

    扇区大小(逻辑/物理)512 字节 / 512 字节

    I/O 大小(最小/最佳)512 字节 / 512 字节

    磁盘标签类型:dos

    磁盘标识符:0xf9a95869

    设备 Boot Start End Blocks Id System

    /dev/sdb1 2048 1026047 512000 83 Linux

    /dev/sdb2 1026048 2050047 512000 83 Linux

    /dev/sdb3 2050048 4194303 1072128 83 Linux

    练习:

    添加硬盘

    进行分区

    fdisk /dev/sdb

    第2个

     

    第3个

     

    查看

    LVM(逻辑卷管理器)配置 

    将分区类型改为lvm

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

    欢迎使用 fdisk (util-linux 2.23.2)

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

    分区号 (1-3,默认 3)1

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

    已将分区“Linux”的类型更改为“Linux LVM”

    ……

    命令(输入 m 获取帮助)w

    The partition table has been altered!

    Calling ioctl() to re-read partition table.

    正在同步磁盘。

    例如:

    更改类型

     

     

    LVM(逻辑卷管理器)配置 

    创建PV

    [root@centos7 ~]# pvcreate /dev/sdb1 /dev/sdb2

    WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y

    Wiping xfs signature on /dev/sdb2.

    WARNING: xfs_external_log signature detected on /dev/sdb2 at offset 16384. Wipe it? [y/n]: y

    Wiping xfs_external_log signature on /dev/sdb2.

    Physical volume "/dev/sdb1" successfully created.

    Physical volume "/dev/sdb2" successfully created.

    例如:

    pv创建

    LVM(逻辑卷管理器)配置 

    查看PV

    [root@centos7 ~]# pvdisplay /dev/sdb1

    "/dev/sdb2" is a new physical volume of "500.00 MiB"

    --- NEW Physical volume ---

    PV Name /dev/sdb2

    VG Name

    PV Size 500.00 MiB

    Allocatable NO

    PE Size 0

    Total PE 0

    Free PE 0

    Allocated PE 0

    PV UUID uVZvFP-VhKk-UWmo-SsvT-S7p8-J490-foncKC

    LVM(逻辑卷管理器)配置

    创建并查看VG

     例如:

    查看并创建卷组

    LVM(逻辑卷管理)配置

    查看加入卷组后的pv

     

    LVM(逻辑卷管理器)配置 

    创建LV

    [root@centos7 ~]# lvcreate -n lv1 -L 496M vg1

    WARNING: xfs signature detected on /dev/vg1/lv1 at offset 0. Wipe it? [y/n]: y

    Wiping xfs signature on /dev/vg1/lv1.

    Logical volume "lv1" created.

    例如:

    创建LV

    LVM(逻辑卷管理器)配置 

     查看LV

    LVM(逻辑卷管理器)配置 

    查看创建LV后的VG

     

     例如:

    查看LV

    另一种写法

    LVM(逻辑卷管理器)配置 

    使用LV

    [root@centos7 ~]# mkfs.xfs /dev/vg1/lv1

    [root@centos7 ~]# mount /dev/vg1/lv1 /disk1/

    [root@centos7 ~]# df -TH 文件系统 类型 容量 已用 可用 已用% 挂载点 ………

    /dev/mapper/vg1-lv1 xfs 517M 27M 491M 6% /disk1

    例如:

    格式化lv

    创建目录

    挂载

    查看

    LVM(逻辑卷管理器)配置 

    扩容VG

     

    例如:

    给卷组扩容

    查看vg

    vgdisplay vg1

    LVM(逻辑卷管理器)配置 

    扩容LV

    例如:

    给逻辑卷扩容

    查看

    lvdisplay /dev/vg1/lv1

    查看卷组信息

    vgdisplay lv1

    LVM(逻辑卷管理器)配置 

    测试扩容

    [root@centos7 ~]# df -hT

    文件系统 类型 容量 已用 可用 已用% 挂载点

    /dev/mapper/vg1-lv1 xfs 493M 67M 427M 14% /disk1

    [root@centos7 ~]# xfs_growfs /dev/vg1/lv1

    [root@centos7 ~]# df -hT

    文件系统 类型 容量 已用 可用 已用% 挂载点

    /dev/mapper/vg1-lv1 xfs 893M 67M 827M 8% /disk1

    例如:

    查看

    Xfs文件系统的扩容

    查看

    Ext4文件系统扩容(看文件系统再执行)

    LVM(逻辑卷管理器)配置 

    创建LV的快照

    首先给vg扩容下空间,快照的空间占用vg的空闲空间

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

    Physical volume "/dev/sdb3" successfully created.

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

    Volume group "vg1" successfully extended

    [root@centos7 ~]# vgdisplay vg1

    ………

    Alloc PE / Size 224 / 896.00 MiB

    Free PE / Size 285 / 1.11 GiB

     ………

    例如:

    如何做快照

    lv1做快照

    查看vg容量是否可以创建快照

    vgdisplay vg1

    发现不够,进行扩容

     

     

    创建测试文件

    LVM(逻辑卷管理器)配置 

    lv1创建1个大小为500M,名称为LV1SP的快照

    [root@centos7 ~]# ll -h /disk1/

    总用量 42M

    -rw-r--r--. 1 root root 42M 1019 16:21 initrd.img

    [root@centos7 ~]# lvcreate -L 500M -s -n LV1SP /dev/vg1/lv1

    Using default stripesize 64.00 KiB.

    Logical volume "LV1SP" created.

    [root@centos7 ~]# lvs                       //查看LV1SP的使用量

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

    root cl -wi-ao---- 13.39g

    swap cl -wi-ao---- 1.60g

    LV1SP vg1 swi-a-s--- 500.00m lv1 0.00

    lv1 vg1 owi-aos--- 896.00m

     例如:

    查看

    创建快照

    查看快照

    LVM(逻辑卷管理器)配置 

    创建一个大小为100M的空文件进行测试

    [root@centos7 ~]# dd if=/dev/zero of=/disk1/test.file count=1 bs=100M

    记录了1+0 的读入

    记录了1+0 的写出

    104857600字节(105 MB)已复制,0.149937 秒,699 MB/

    [root@centos7 ~]# ll -h /disk1/

    总用量 142M

    -rw-r--r--. 1 root root 42M 1019 16:21 initrd.img

    -rw-r--r--. 1 root root 100M 1019 16:30 test.file

     例如:

    在创建文件

    lv1中写一个数据变化量

    查看

    LVM(逻辑卷管理器)配置 

    再次检查LV1SP的使用量

    [root@centos7 ~]# lvs

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

    root cl -wi-ao---- 13.39g

    swap cl -wi-ao---- 1.60g

    LV1SP vg1 swi-a-s--- 500.00m lv1 20.09

    lv1 vg1 owi-aos--- 896.00m

     例如:

    查看lv情况

    LVM(逻辑卷管理器)配置 

    卸载文件系统,然后恢复快照

    [root@centos7 ~]# umount /disk1/

    [root@centos7 ~]# lvconvert --merge /dev/vg1/LV1SP

    Merging of volume vg1/LV1SP started.

    lv1: Merged: 80.32%

    lv1: Merged: 100.00%

    快照使用一次后会自动删除

    [root@centos7 ~]# lvs

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

    root cl -wi-ao---- 13.39g

    swap cl -wi-ao---- 1.60g

    lv1 vg1 -wi-a----- 896.00m

     例如:

    恢复快照先卸载再回复

    恢复

     

    LVM(逻辑卷管理器)配置 

    验证快照恢复结果

    [root@centos7 ~]# ll -h /disk1 /    总用量 0

    [root@centos7 ~]# mount /dev/vg1/lv1 /disk1/

    [root@centos7 ~]# ll -h /disk1 /     总用量 42M

    -rw-r--r--. 1 root root 42M 1019 16:21 initrd.img

    例如:

    证明数据被恢复

     

    拓展:

    删除快照:

    不用恢复直接删除快照

    通过以上LVM的截图实验,另配一个实验(以及实验相关的命令)供自己检测

    1,创建三个逻辑分区 sdb6 sdb7 sdb8 分别为 500M 500M 1G 设置分区类型为 8e

    [root@localhost ~]# fdisk /dev/sdb
    [root@localhost ~]# fdisk -l /dev/sdb
    Device Boot Start End Blocks Id System
    /dev/sdb1 2048 2099199 1048576 83 Linux
    /dev/sdb2 2099200 6293503 2097152 83 Linux
    /dev/sdb3 6293504 10487807 2097152 82 Linux swap / Solaris
    /dev/sdb4 10487808 20971519 5241856 5 Extended
    /dev/sdb5 10489856 14684159 2097152 83 Linux
    /dev/sdb6 14686208 15710207 512000 8e Linux LVM
    /dev/sdb7 15712256 16736255 512000 8e Linux LVM
    /dev/sdb8 16738304 18835455 1048576 8e Linux LVM
    [root@localhost ~]# partprobe /dev/sdb

    2,将 sdb6 sdb7 转化为 pv, 并将 sdb6 加入卷组 vg1 中,将卷组 vg1 中的全部空间划分给逻辑卷 vg1
    将逻辑卷 vg1 格式化为 xfs 文件系统挂载至 /mailbox 上

    [root@localhost ~]# pvcreate /dev/sdb6 /dev/sdb7
    [root@localhost ~]# pvdisplay
    [root@localhost ~]# vgcreate vg1 /dev/sdb6
    [root@localhost ~]# vgdisplay vg1
    [root@localhost ~]# lvcreate -n lv1 -L 496M vg1
    [root@localhost ~]# lvdisplay /dev/vg1/lv1

    [root@localhost ~]# mkfs.xfs /dev/vg1/lv1
    [root@localhost ~]# mkdir /mailbox
    [root@localhost ~]# mount /dev/vg1/lv1 /mailbox

    3,将 sdb7 加入卷组 vg1 中,为 lv1 扩容 400M,并验证扩展的空间对于目录 /mailbox 可用

    [root@localhost ~]# vgextend vg1 /dev/sdb7
    [root@localhost ~]# vgdisplay vg1
    [root@localhost ~]# lvextend -L +400M /dev/vg1/lv1
    [root@localhost ~]# lvdisplay /dev/vg1/lv1
    [root@localhost ~]# df -hT
    [root@localhost ~]# xfs_growfs /dev/vg1/lv1
    [root@localhost ~]# df -hT

    4,创建快照
    为卷组 vg1 扩容,将 sdb8 转化为 pv 并加入卷组 vg1 中,
    在逻辑卷中创建文件 file 大小为 20M
    为逻辑卷 lv1 创建快照 LV1SP 大小为 500M,使用 lvs 查看快照逻辑卷
    在 /mailbox 中创建新文件 new 大小为 100M,使用 lvs 查看快照逻辑卷变化

    [root@localhost ~]# fdisk -l /dev/sdb
    [root@localhost ~]# pvcreate /dev/sdb8
    [root@localhost ~]# vgextend vg1 /dev/sdb8
    [root@localhost ~]# vgdisplay vg1

    [root@localhost ~]# dd if=/dev/zero of=/mailbox/file bs=10M count=2
    [root@localhost ~]# ll -h /mailbox
    total 20M
    -rw-r--r--. 1 root root 20M Oct 29 15:20 file
    [root@localhost ~]# lvcreate -L 500M -s -n LV1SP /dev/vg1/lv1
    [root@localhost ~]# lvs
    [root@localhost ~]# dd if=/dev/zero of=/mailbox/new bs=100M count=1
    [root@localhost ~]# ll -h /mailbox
    total 120M
    -rw-r--r--. 1 root root 20M Oct 29 15:20 file
    -rw-r--r--. 1 root root 100M Oct 29 15:26 new
    [root@localhost ~]# lvs

    5,恢复快照 LV1SP 并验证

    [root@localhost ~]# umount /mailbox
    特别注意:要先卸载分区再恢复快照。
    [root@localhost ~]# lvconvert --merge /dev/vg1/LV1SP
    [root@localhost ~]# lvs
    [root@localhost ~]# mount /dev/vg1/lv1 /mailbox
    [root@localhost ~]# ll -h /mailbox
    total 20M
    -rw-r--r--. 1 root root 20M Oct 29 15:20 file

    6,为逻辑卷 lv1 创建快照 LV1SP2 大小为 500M,使用 lvs 查看快照逻辑卷
    在 /mailbox 中创建新文件 new2 大小为 50M,使用 lvs 查看快照逻辑卷变化
    移除快照

    [root@localhost ~]# lvcreate -L 500M -s -n LV1SP2 /dev/vg1/lv1
    [root@localhost ~]# lvs
    [root@localhost ~]# dd if=/dev/zero of=/mailbox/new2 bs=10M count=5
    [root@localhost ~]# ll -h /mailbox
    total 70M
    -rw-r--r--. 1 root root 20M Oct 29 15:20 file
    -rw-r--r--. 1 root root 50M Oct 29 15:50 new2
    [root@localhost ~]# lvs

    [root@localhost ~]# lvremove /dev/vg1/LV1SP2
    [root@localhost ~]# lvs

  • 相关阅读:
    poj2661
    poj2624
    无法使用 mask和unmask,报错“对象不支持此属性或方法”
    document.getElementsByName("IPInput3").disabled=(id!=1); 操作无效的原因是应该为
    jquery获取input的值
    POST过来的数据,php中提示Undefined index
    jQuery插件之zTree
    jQuery插件之Smart spin
    jQuery插件开发全解析
    使用IE调试检查JavaScript的错误
  • 原文地址:https://www.cnblogs.com/yxd1308243944/p/13893434.html
Copyright © 2011-2022 走看看