美文网首页
九、LVM,swap,mount详解

九、LVM,swap,mount详解

作者: 胖虎喜欢小红 | 来源:发表于2020-01-25 12:02 被阅读0次

    存储管理 二

    1.逻辑卷LVM

    1.1.LVM管理

    lv概念:
    LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。可以跨分区,多个硬盘组合。
    
    lvm的制作
    lvm的使用
    lvm(Logical Volume)扩容--在线扩容。可以在有数据的情况下去扩容。
    
    基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载)
    逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)
    

    1.2.lvm的制作

    第一步,拥有基本分区
    做成物理卷:pv(Physical Volume) ------- sdb1、sdb2 打pv的标记。处于LVM最底层,可以是物理硬盘或者分区。
    加入卷组:vg(Volume Group)-------- 卷组名字里面包含:sdb1  sdb2。建立在PV之上,可以含有一个到多个PV。
    逻辑卷:lv(Logical Volume)-------  大小卷组的空间总和到一起在起个名,逻辑卷是从卷组里面拿空间出来做成的逻辑卷。建立在VG之上,相当于原来分区的概念。不过大小可以动态改变。
    制作文件系统------mkfs.xfs    lvm路径
    挂载 ------mount   使用lvm
    
    #制作lv的时候可以是一整块硬盘也可以是硬盘分好的区并且是还没有用的。必须是没有做文件系统的
    

    实战

    1.3.创建LVM

    首先准备添加1块新磁盘:可以是/dev/sdc这种没有分区的也可以是/dev/sdb这种已经分区了的

    [root@biudefor ~]# ls -l /dev/sd*
    brw-rw----. 1 root disk 8,  0 Jan 25 11:20 /dev/sda
    brw-rw----. 1 root disk 8,  1 Jan 25 11:20 /dev/sda1
    brw-rw----. 1 root disk 8,  2 Jan 25 11:20 /dev/sda2
    brw-rw----. 1 root disk 8, 16 Jan 25 11:20 /dev/sdb
    brw-rw----. 1 root disk 8, 17 Jan 25 11:20 /dev/sdb1
    brw-rw----. 1 root disk 8, 18 Jan 25 11:20 /dev/sdb2
    brw-rw----. 1 root disk 8, 32 Jan 25 11:20 /dev/sdc
    

    创建pv

    [root@biudefor ~]# pvcreate /dev/sdc
      Physical volume "/dev/sdc" successfully created.
    [root@biudefor ~]# pvs
      PV         VG     Fmt  Attr PSize   PFree
      /dev/sda2  centos lvm2 a--  <19.00g 4.00m
      /dev/sdc          lvm2 ---    5.00g 5.00g
    [root@biudefor ~]# pvscan
      PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 4.00 MiB free]
      PV /dev/sdc                       lvm2 [5.00 GiB]
      Total: 2 [<24.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [5.00 GiB]
    

    创建vg

    [root@biudefor ~]# vgcreate vg1 /dev/sdc    #创建vg,vg1是名字
      Volume group "vg1" successfully created
    [root@biudefor ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree 
      centos   1   2   0 wz--n- <19.00g  4.00m
      vg1      1   0   0 wz--n-  <5.00g <5.00g
    [root@biudefor ~]# vgscan
      Reading volume groups from cache.
      Found volume group "vg1" using metadata type lvm2
      Found volume group "centos" using metadata type lvm2
    [root@biudefor ~]# vgdisplay
      --- Volume group ---
      VG Name               vg1
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  1
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                0
      Open LV               0
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               <5.00 GiB
      PE Size               4.00 MiB
      Total PE              1279
      Alloc PE / Size       0 / 0   
      Free  PE / Size       1279 / <5.00 GiB
      VG UUID               UOYUzR-2OdE-Ibdk-Nb8i-2qmH-w0po-T9bVjK
    

    创建lv

    [root@biudefor ~]# lvcreate -L 1G -n lv1 vg1    #创建lv
      Logical volume "lv1" created.
    [root@biudefor ~]# lvcreate -l 250 -n lv2 vg1
      Logical volume "lv2" created.
    参数解释:
    -L 指定lv的大小
    -n 给创建的lv起一个名字
    -l 250 指定PE 
    [root@biudefor ~]# lvs
      LV   VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----   17.99g                                                    
      swap centos -wi-ao----    1.00g                                                    
      lv1  vg1    -wi-a-----    1.00g                                                    
      lv2  vg1    -wi-a----- 1000.00m
    

    制作文件系统并挂载

    [root@biudefor ~]# mkfs.xfs  /dev/vg1/lv1
    [root@biudefor ~]# mkfs.ext4 /dev/vg1/lv2
    [root@biudefor ~]# mkdir /mnt/lv{1..2}
    [root@biudefor ~]# mount /dev/vg1/lv1 /mnt/lv1
    [root@biudefor ~]# mount /dev/vg1/lv2 /mnt/lv2
    [root@biudefor ~]# df -Th
    Filesystem              Type      Size  Used Avail Use% Mounted on
    /dev/mapper/vg1-lv1     xfs      1014M   33M  982M   4% /mnt/lv1
    /dev/mapper/vg1-lv2     ext4      969M  2.5M  900M   1% /mnt/lv2
    

    2.VG管理

    2.1.扩大VG vgextend

    可以使用上面将一整块磁盘做成PV的方式,这里我是用的是将已经分过区,但是内存还有剩余的sdb的剩下的空间做成PV

    [root@biudefor ~]# gdisk /dev/sdb
    Command (? for help): n
    Partition number (3-128, default 3): 
    First sector (34-10485726, default = 4196352) or {+-}size{KMGTP}: 
    Last sector (4196352-10485726, default = 10485726) or {+-}size{KMGTP}: 
    Current type is 'Linux filesystem'
    Hex code or GUID (L to show codes, Enter = 8300): 
    Changed type of partition to 'Linux filesystem'
    
    Command (? for help): w
    
    Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
    PARTITIONS!!
    
    Do you want to proceed? (Y/N): y
    OK; writing new GUID partition table (GPT) to /dev/sdb.
    Warning: The kernel is still using the old partition table.
    The new table will be used at the next reboot.
    The operation has completed successfully.
    [root@biudefor ~]# partprobe /dev/sdb
    [root@biudefor ~]# ls /dev/sd*
    /dev/sda   /dev/sda2  /dev/sdb1  /dev/sdb3
    /dev/sda1  /dev/sdb   /dev/sdb2  /dev/sdc
    

    创建PV, 扩大VG

    [root@biudefor ~]# pvcreate /dev/sdb3
      Physical volume "/dev/sdb3" successfully created.
    [root@biudefor ~]# vgextend vg1 /dev/sdb3
      Volume group "vg1" successfully extended
    [root@biudefor ~]# vgextend vg1 /dev/sdb3
    [root@biudefor ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree 
      centos   1   2   0 wz--n- <19.00g  4.00m
      vg1      2   2   0 wz--n-   7.99g <6.02g
    

    LV扩容

    注意:如果lv所在的vg有空间直接扩容就ok了!,就不需要做上面的操作

    [root@biudefor ~]# vgs  #查看vg
      VG     #PV #LV #SN Attr   VSize   VFree 
      centos   1   2   0 wz--n- <19.00g  4.00m
      vg1      2   2   0 wz--n-   7.99g <6.02g
    [root@biudefor ~]# lvextend -L 850M /dev/vg1/lv1  #扩展到850M,这个会失败,因为我们的LV原本就大于850M
    [root@biudefor ~]# lvextend -L +800M /dev/vg1/lv1 #在原有基础上加800M
    [root@biudefor ~]# lvs
      LV   VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----   17.99g                                                    
      swap centos -wi-ao----    1.00g                                                    
      lv1  vg1    -wi-ao----    1.78g                                                    
      lv2  vg1    -wi-ao---- 1000.00m
    [root@biudefor ~]# lvextend -L +15 /dev/vg1/lv1
    [root@biudefor ~]# lvs
      LV   VG     Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----   17.99g                                                    
      swap centos -wi-ao----    1.00g                                                    
      lv1  vg1    -wi-ao----   <1.80g                                                    
      lv2  vg1    -wi-ao---- 1000.00m
    

    FS(file system)文件系统扩容

    [root@biudefor ~]# df -Th
    Filesystem              Type      Size  Used Avail Use% Mounted on
    /dev/mapper/vg1-lv1     xfs      1014M   33M  982M   4% /mnt/lv1
    /dev/mapper/vg1-lv2     ext4      969M  2.5M  900M   1% /mnt/lv2
    [root@biudefor ~]# xfs_growfs /dev/vg1/lv1  #xfs扩容
    [root@biudefor ~]# resize2fs /dev/vg1/lv2   #ext4扩容
    resize2fs 1.42.9 (28-Dec-2013)
    The filesystem is already 256000 blocks long.  Nothing to do!
    因为这里没有去扩展LV2
    
    [root@biudefor ~]# df -Th
    Filesystem              Type      Size  Used Avail Use% Mounted on
    /dev/mapper/vg1-lv1     xfs       1.8G   33M  1.8G   2% /mnt/lv1
    /dev/mapper/vg1-lv2     ext4      969M  2.5M  900M   1% /mnt/lv2
    

    二.交换分区

    交换分区管理 Swap ---(也叫虚拟内存)

    作用: ‘提升‘ 内存的容量,防止OOM(Out Of Memory)内存容量不足

    现象是当内存不够的时候内核会随机杀死进程,它认为占用内存无关的进程。(内核会先删除占用内存多的进程)
    

    一、查看当前的交换分区

    [root@biudefor ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:            976         109         718           6         148         702
    Swap:          1023           0        1023
    [root@biudefor ~]# swapon -s    #查看交换分区信息
    

    二、增加交换分区 可以是基本分区,LVM,File

    再添加一块磁盘

    [root@biudefor ~]# fdisk /dev/sdd  #分一个主分区出来
    [root@biudefor ~]# partprobe /dev/sdd #刷新分区表
    [root@biudefor ~]# ll /dev/sdd*
    brw-rw----. 1 root disk 8, 16 Nov  9 14:11 /dev/sdd
    brw-rw----. 1 root disk 8, 17 Nov  9 14:11 /dev/sdd1
    

    初始化

    [root@biudefor ~]# mkswap /dev/sdd1  #初始化
    Setting up swapspace version 1, size = 5242876 KiB
    no label, UUID=d2fd3bc0-10c0-4aeb-98ea-6b640d29b783
    

    挂载

    [root@biudefor ~]# blkid /dev/sdd1  #查看UUID
    /dev/sdd1: UUID="d2fd3bc0-10c0-4aeb-98ea-6b640d29b783" TYPE="swap" 
    [root@biudefor ~]# vim /etc/fstab  #制作开机挂载
    /dev/sdd1       swap    swap    defaults        0 0
    [root@biudefor ~]# swapon -a #激活swap分区(读取/etc/fstab)
    [root@biudefor ~]# swapon -s
    Filename                                Type            Size    Used    Priority
    /dev/dm-1                               partition       2097148 0       -1
    /dev/sdd1                               partition       5242876 0       -2
    
    #swapoff /dev/sdd1  #关闭swap分区
    

    file制作

    [root@biudefor ~]# dd if=/dev/zero of=/swap2.img bs=1M count=512
    解释:dd  读入从空设备里面拿空块 到交换分区 块多大  一共多少兆
    [root@biudefor ~]# mkswap /swap2.img  #初始化
    [root@biudefor ~]# vim /etc/fstab
    /swap2.img      swap    swap    defaults        0 0
    [root@biudefor ~]# chmod 600 /swap2.img #交换分区权限需要设置为600,默认644权限不安全。
    [root@biudefor ~]# swapon -a
    [root@biudefor ~]# swapon -s
    Filename                                Type            Size    Used    Priority
    /dev/dm-1                               partition       2097148 0       -1
    /dev/sdd1                               partition       5242876 0       -2
    /swap2.img                              file    524284  0       -3
    

    三.mount详解

    常用挂载选项详解

    挂载设备文件名、UUID
    

    常见的挂载选项

    -t         文件系统类型
    -o         指定文件系统属性
    rw         读写 
    ro         只读 
    suid        支持suid 
    dev         支持设备文件
    nodev       不支持设备文件 
    noexec      不允许执行二进制文件
    exec            允许执行二进制文件 
    auto            mount -a 开机自动挂载 
    noauto      mount -a 开机不自动挂载 
    usrquota    支持用户级磁盘配额功能
    grpquota    支持组级磁盘配额功能
    acl         支持facl功能 
    remount 在线重新挂载 
    pri            指定优先级
    
    [root@biudefor ~]# mount  #查看已经挂载上的系统的属性
    

    案例1:exec/noexec

    [root@biudefor ~]# mount /dev/vg1/lv1 /mnt/lv1/     #挂载默认是有执行权限的
    [root@biudefor ~]# mount -o noexec /dev/vg1/lv2 /mnt/lv2  #不允许执行二进制文件
    [root@biudefor ~]# cat /mnt/lv1/hello.sh
    #!/bin/bash
    echo "hello"
    
    [root@biudefor ~]# cat /mnt/lv2/hello2.sh
    #!/bin/bash
    echo "hello"
    [root@biudefor ~]# chmod +x /mnt/lv1/hello.sh 
    [root@biudefor ~]# chmod +x /mnt/lv2/hello2.sh
    [root@biudefor ~]# /mnt/lv1/hello.sh
    hello
    [root@biudefor ~]# /mnt/lv2/hello2.sh
    -bash: /mnt/lv2/hello2.sh: Permission denied
    

    取消挂载

    [root@biudefor ~]# df -Th
    Filesystem              Type      Size  Used Avail Use% Mounted on
    /dev/mapper/vg1-lv1     xfs       1.7G   34M  1.7G   2% /mnt/lv1
    /dev/mapper/vg1-lv2     ext4       74M  1.6M   67M   3% /mnt/lv2
    [root@biudefor ~]# umount /mnt/lv2/
    

    移除

    [root@biudefor ~]# lvremove /dev/vg2/lv2
    
    Do you really want to remove active logical volume vg2/lv2? [y/n]: y
    
      Logical volume "lv2" successfully removed
      
      #先移除lv
    
    [root@biudefor ~]# vgremove /dev/vg2
    
      Volume group "vg2" successfully removed
      
      #再移除vg
    
    [root@biudefor ~]# pvremove /dev/sdc
    
      Labels on physical volume "/dev/sdc" successfully wiped.
    
      #移除pv
      
      #如果一个pv做了两个vg,不能移除pv
    

    相关文章

      网友评论

          本文标题:九、LVM,swap,mount详解

          本文链接:https://www.haomeiwen.com/subject/qzkrthtx.html