美文网首页
存储管理Ⅱ-swap、逻辑卷

存储管理Ⅱ-swap、逻辑卷

作者: 老哥很稳 | 来源:发表于2020-07-04 16:53 被阅读0次

    一.存储管理Ⅱ

    1.逻辑卷LVM

    1.1.LVM管理

    在线扩容 online

    创建LVM VG的扩容 LVM的扩容 文件系统扩容

    基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载)

    逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)

    PE: Physical extent 物理扩展单元 4M 8M 16M 32M 64M 创建VG时指定 -s 8M

    LE: Logical extent 逻辑扩展单元

    1.2.创建LVM

    虚拟机先将以前添加的磁盘摘除,然后添加两块新磁盘

    准备物理磁盘 可以是: /dev/sdb /dev/sdc

    [root@rabbitmq-1 ~]# lsblk 
    NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda               8:0    0   30G  0 disk 
    ├─sda1            8:1    0    1G  0 part /boot
    └─sda2            8:2    0   29G  0 part 
      ├─centos-root 253:0    0   27G  0 lvm  /
      └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
    sdb               8:16   0    1G  0 disk 
    sdc               8:32   0    1G  0 disk 
    sr0              11:0    1 1024M  0 rom  
    
    [root@localhost ~]# ll /dev/sd{a,b,c}
    brw-rw----. 1 root disk 8,  0 Jan  2 00:18 /dev/sda
    brw-rw----. 1 root disk 8, 16 Jan  2 00:18 /dev/sdb
    brw-rw----. 1 root disk 8, 32 Jan  2 00:18 /dev/sdc
    
    1.3.创建.pv
    [root@server0 ~]# pvcreate /dev/sdb     //制作pv
      Physical volume "/dev/sdb1" successfully created.
    
    [root@server0 ~]# pvscan                //查看pv
      PV /dev/sda2   VG centos          lvm2 [<29.00 GiB / 4.00 MiB free]
      PV /dev/sdb                       lvm2 [1.00 GiB]
      Total: 2 [<30.00 GiB] / in use: 1 [<29.00 GiB] / in no VG: 1 [1.00 GiB]
    
    
    [root@server0 ~]# pvs               //查看pv  
    PV         VG     Fmt  Attr PSize   PFree
    /dev/sda2  centos lvm2 a--  <29.00g 4.00m
    /dev/sdb          lvm2 ---    1.00g 1.00g
    
    1.4.创建vg
    [root@server0 ~]# vgcreate vg1 /dev/sdb  //创建的PV名
     Volume group "vg1" successfully created
    
    [root@server0 ~]# vgs  
     VG   #PV #LV #SN Attr   VSize VFree
     vg1    1   0   0 wz--n- 2.00g 2.00g
    
    [root@server0 ~]# vgscan    
      Reading volume groups from cache.
      Found volume group "centos" using metadata type lvm2
      Found volume group "vg1" using metadata type lvm2
    
    [root@server0 ~]# 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               2.00 GiB 
    PE Size               4.00 MiB  
    Total PE              511  
    Alloc PE / Size       0 / 0     
    Free  PE / Size       511 / 2.00 GiB
    VG UUID               7E4tlj-l0a2-ph52-OytH-eaq7-58K6-2S4n8V
    
    1.5.lv
    [root@server0 ~]# lvcreate -l 10 -n lv1 vg1         // -l 指定多少块,单位为PE Size
    [root@server0 ~]# lvcreate -L 200M -n lv2 vg1       // -L 指定大小创建
    [root@server0 ~]# lvscan 
      ACTIVE            '/dev/vg1/lv1' [40.00 MiB] inherit
      ACTIVE            '/dev/vg1/lv2' [200.00 MiB] inherit
      ACTIVE            '/dev/centos/root' [26.99 GiB] inherit
      ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
    
    [root@server0 ~]# lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----  26.99g                                                    
      swap centos -wi-ao----   2.00g                                                    
      lv1  vg1    -wi-a-----  40.00m                                                    
      lv2  vg1    -wi-a----- 200.00m   
    

    创建文件系统并挂载

    [root@server0 ~]# mkfs.xfs /dev/vg1/lv1
    [root@server0 ~]# mkfs.ext4 /dev/vg1/lv2
    [root@server0 ~]# mkdir /mnt/lv1 /mnt/lv2
    
    [root@server0 ~]# vim /etc/fstab            //配置开机挂载,将以下内容添加到文件最下面
    /dev/vg1/lv1    /mnt/lv1        xfs     defaults 0 0
    /dev/vg1/lv2    /mnt/lv2        ext4    defaults 0 0
    
    [root@server0 ~]# mount -a                  //自动读取/etc/fstab文件的挂载信息,进行挂载
    [root@server0 ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   27G  2.6G   25G  10% /
    devtmpfs                 478M     0  478M   0% /dev
    tmpfs                    489M     0  489M   0% /dev/shm
    tmpfs                    489M  6.9M  482M   2% /run
    tmpfs                    489M     0  489M   0% /sys/fs/cgroup
    /dev/sda1               1014M  125M  890M  13% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    /dev/mapper/vg1-lv1       37M  2.2M   35M   6% /mnt/lv1
    /dev/mapper/vg1-lv2      190M  1.6M  175M   1% /mnt/lv2
    

    2.VG管理

    2.1.扩大VG vgextend
    1.创建pv
    [root@server0 ~]# pvcreate /dev/sdc
      Physical volume "/dev/sdc" successfully created.
    
    
    2.直接vgextend扩容
    [root@server0 ~]# vgextend vg1 /dev/sdc         //vg1卷组名字,将/dev/vde扩展到vg1中
     Volume group "vg1" successfully extended
    
    [root@server0 ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree 
      centos   1   2   0 wz--n- <29.00g  4.00m
      vg1      2   2   0 wz--n-   1.99g <1.76g
    
    
    2.2.减小VG

    通常先做数据的迁移

    1.查看当前的VG中PV的使用情况

    [root@server0 ~]# pvs
      PV         VG     Fmt  Attr PSize    PFree   
      /dev/sda2  centos lvm2 a--   <29.00g    4.00m
      /dev/sdb   vg1    lvm2 a--  1020.00m  780.00m
      /dev/sdc   vg1    lvm2 a--  1020.00m 1020.00m
      
    [root@server0 ~]# vgs
      VG     #PV #LV #SN Attr   VSize   VFree 
      centos   1   2   0 wz--n- <29.00g  4.00m
      vg1      2   2   0 wz--n-   1.99g <1.76g
    
    [root@server0 ~]# vgreduce vg1 /dev/sdc
      Removed "/dev/sdc" from volume group "vg1"
      
    [root@server0 ~]# vgs
      VG     #PV #LV #SN Attr   VSize    VFree  
      centos   1   2   0 wz--n-  <29.00g   4.00m
      vg1      1   2   0 wz--n- 1020.00m 780.00m
    
    [root@server0 ~]# pvs
      PV         VG     Fmt  Attr PSize    PFree  
      /dev/sda2  centos lvm2 a--   <29.00g   4.00m
      /dev/sdb   vg1    lvm2 a--  1020.00m 780.00m
      /dev/sdc          lvm2 ---     1.00g   1.00g
    
    
    2.3.pvmove数据到其它PV
    首先要保证有备用pv(要属于一个vg)
    可以先在/dev/vdd创建出一个逻辑卷之后,进行测试
    [root@server0 ~]# pvmove /dev/vdd
      /dev/vdd: Moved: 16.7%
      /dev/vdd: Moved: 100.0%
    
    [root@server0 ~]# pvs
      PV         VG   Fmt  Attr PSize PFree
      /dev/vdd   vg1  lvm2 a--  2.00g 2.00g
      /dev/vde   vg1  lvm2 a--  2.00g 1.76g
    vgreduce VG
    
    [root@server0 ~]#  vgreduce vg1 /dev/vdd
      Removed "/dev/vdd" from volume group "vg1"
    
    [root@server0 ~]# vgs
      VG   #PV #LV #SN Attr   VSize VFree
      vg1    1   2   0 wz--n- 2.00g 1.76g3
    
    2.4.LV扩容

    lv扩容

    如果lv所在vg有空间,直接扩展即可
    [root@server0 ~]# vgs
      VG     #PV #LV #SN Attr   VSize    VFree  
      centos   1   2   0 wz--n-  <29.00g   4.00m
      vg1      1   2   0 wz--n- 1020.00m 780.00m
    
    [root@server0 ~]# lvextend -L 200M /dev/vg1/lv1     //扩展到200M
      
    [root@server0 ~]# lvs   
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----  26.99g                                                    
      swap centos -wi-ao----   2.00g                                                    
      lv1  vg1    -wi-ao---- 200.00m                                                    
      lv2  vg1    -wi-ao---- 200.00m                                                    
    [root@server0 ~]# lvextend -L +200M /dev/vg1/lv2    //在原有基础上加200M
    
    [root@server0 ~]# lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----  26.99g                                                    
      swap centos -wi-ao----   2.00g                                                    
      lv1  vg1    -wi-ao---- 200.00m                                                    
      lv2  vg1    -wi-ao---- 400.00m  
      
    [root@server0 ~]# lvextend -l +5 /dev/vg1/lv1       //在原有基础上加5个PE
    
    [root@server0 ~]# lvs
      LV   VG     Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
      root centos -wi-ao----  26.99g                                                    
      swap centos -wi-ao----   2.00g                                                    
      lv1  vg1    -wi-ao---- 220.00m                                                    
      lv2  vg1    -wi-ao---- 400.00m                        
    
    
    
    

    FS(file system)文件系统扩容

    [root@server0 ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   27G  2.6G   25G  10% /
    devtmpfs                 478M     0  478M   0% /dev
    tmpfs                    489M     0  489M   0% /dev/shm
    tmpfs                    489M  6.9M  482M   2% /run
    tmpfs                    489M     0  489M   0% /sys/fs/cgroup
    /dev/sda1               1014M  125M  890M  13% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    /dev/mapper/vg1-lv1       37M  2.2M   35M   6% /mnt/lv1
    /dev/mapper/vg1-lv2      190M  1.6M  175M   1% /mnt/lv2
    文件系统不扩容,空间是不会自动扩展的
    
     A. xfs(如果是xfs文件系统类型)
    [root@server0 ~]# xfs_growfs /dev/vg1/lv1 
    
    [root@server0 ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   27G  2.6G   25G  10% /
    devtmpfs                 478M     0  478M   0% /dev
    tmpfs                    489M     0  489M   0% /dev/shm
    tmpfs                    489M  6.9M  482M   2% /run
    tmpfs                    489M     0  489M   0% /sys/fs/cgroup
    /dev/sda1               1014M  125M  890M  13% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    /dev/mapper/vg1-lv1      217M  2.4M  215M   2% /mnt/lv1
    /dev/mapper/vg1-lv2      190M  1.6M  175M   1% /mnt/lv2
    文件系统xfs扩容成功
    
     
     B. ext2/3/4(如果是ext文件系统类型)
     [root@server0 ~]# resize2fs /dev/vg1/lv2
    
    [root@server0 ~]# resize2fs /dev/vg1/lv2 
    resize2fs 1.42.9 (28-Dec-2013)
    Filesystem at /dev/vg1/lv2 is mounted on /mnt/lv2; on-line resizing required
    old_desc_blocks = 2, new_desc_blocks = 4
    The filesystem on /dev/vg1/lv2 is now 409600 blocks long.
    
    [root@server0 ~]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   27G  2.6G   25G  10% /
    devtmpfs                 478M     0  478M   0% /dev
    tmpfs                    489M     0  489M   0% /dev/shm
    tmpfs                    489M  6.9M  482M   2% /run
    tmpfs                    489M     0  489M   0% /sys/fs/cgroup
    /dev/sda1               1014M  125M  890M  13% /boot
    tmpfs                     98M     0   98M   0% /run/user/0
    /dev/mapper/vg1-lv1      217M  2.4M  215M   2% /mnt/lv1
    /dev/mapper/vg1-lv2      384M  2.3M  360M   1% /mnt/lv2
    文件系统ext4扩容成功
    
    

    二.交换分区

    交换分区管理 Swap

    作用: ‘提升‘ 内存的容量,防止内存溢出OOM(Out Of Memory),造成过度消耗系统资源

    一、查看当前的交换分区

    [root@server0 ~]# free -m           //查看系统交换分区信息      
    total        used        free      shared  buff/cache  available     Mem:            489  140         145           4         202         304 
    Swap:             0           0             0  
    
    [root@server0 ~]# swapon -s         //查看系统交换分区信息 
    
    

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

    ===分区===

    准备分区

    [root@server0 ~]# fdisk /dev/vdb   
    
    [root@server0 ~]# partprobe /dev/vdb 
    
    [root@server0 ~]# ll /dev/vdb*
    
     brw-rw----. 1 root disk 253, 16 12月  6 10:18 /dev/vdb
    
     brw-rw----. 1 root disk 253, 17 12月  6 10:18 /dev/vdb1
    
    

    初始化

    [root@server0 ~]# mkswap /dev/vdb1      //制作交换分区
    
    

    三.挂载

    [root@server0 ~]# blkid /dev/vdb1
    /dev/vdb1: UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" TYPE="swap" 
    
    [root@server0 ~]# vim /etc/fstab        //设置开机挂载
    UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap    swap default 0 0
    
    [root@server0 ~]# swapon -a (读取/etc/fstab)      
    [root@server0 ~]# swapon -s
    Filename                Type        Size    Used    Priority
    /dev/vdb1                               partition   524284  0   -1
    
    

    ===File===

    当没有swap分区时,需要取一个swap文件,作为分区
    
    [root@server0 ~]# df -Th
    Filesystem     Type      Size  Used Avail Use% Mounted on
    /dev/vda1      xfs        10G  3.3G  6.8G  33% /
    
    [root@server0 ~]# dd if=/dev/zero of=/swap.img bs=1M count=512
    或者
    [root@server0 ~]# dd </dev/zero >/swap.img bs=1M count=512  //取出一个文件制定大小
    512+0 records in
    512+0 records out
    536870912 bytes (537 MB) copied, 6.15656 s, 87.2 MB/s
    //
    
    
    [root@server0 ~]# mkswap /swap.img
    Setting up swapspace version 1, size = 524284 KiB
    no label, UUID=8dcdf14d-3d56-4edc-8c27-95092ec725b1
    
    [root@server0 ~]# vim /etc/fstab
    /swap.img                                  swap    swap default 0 0
    
    [root@server0 ~]# swapon -a
    swapon: /swap2.img: insecure permissions 0644, 0600 suggested.
    [root@server0 ~]# chmod 600 /swap.img 
    [root@server0 ~]# swapon -a
    
    [root@server0 ~]# swapon -s
    Filename                Type        Size    Used    Priority
    /dev/dm-1               partition   2097148 0       -1
    /dev/sdb1               partition   524284  0       -2
    /swap.img               file        524284  0       -3
    
    
    

    作业:交换分区扩容(扩展)

    [root@localhost ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1984         163        1115           8         704        1641
    Swap:          2047           0        2047
    
    [root@localhost ~]# pvcreate /dev/sdc
    
    [root@localhost ~]# vgextend centos /dev/sdc
    
    [root@localhost ~]# lvextend -L +1.9G /dev/mapper/centos-swap /dev/sdc
    
    [root@localhost ~]# xfs_growfs /dev/mapper/centos-swap(可选操作)
    
    [root@localhost ~]# swapoff /dev/mapper/centos-swap
    
    [root@localhost ~]# mkswap /dev/mapper/centos-swap 
    
    [root@localhost ~]# swapon -a
    
    [root@localhost ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1984         167        1113           8         704        1638
    Swap:          3995           0        3995
    
    

    三.mount详解

    常用挂载选项详解 
    
    挂载设备文件、UUID
    
    挂载选项 -t 文件系统类型 -o 选项1,选项2... 
    
    示例: mount -t ext4 -o rw /dev/sdb1 /mnt/disk1  
    
    -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。
    
    -o options 主要用来描述设备或档案的挂接方式。
    
    文件系统类型:vfat,ext4,xfs,nfs,cifs,iso9660,loop
    
    

    案例1:exec/noexec

    [root@youngfit ~]# mount /dev/vg01/lv01 /mnt/lv01       //挂载默认是有执行权限的
    
    [root@youngfit ~]# mount -o noexec /dev/vg01/lv02 /mnt/lv02
    
    [root@youngfit ~]# cat /mnt/lv01/hello.sh
    #!/bin/bash
    echo "hello"
    
    [root@youngfit ~]# cat /mnt/lv02/hello.sh
    #!/bin/bash
    echo "hello"
    
    [root@youngfit ~]# /mnt/lv01/hello.sh
    hello
    
    [root@youngfit ~]# /mnt/lv02/hello.sh
    -bash: /mnt/lv02/hello.sh: Permission denied
    
    
    

    作业:测试写权限

    常见的挂载选项

    rw                      读写 
    ro                      只读 
    suid        支持suid 
    dev         支持设备文件
    nodev       不支持设备文件 
    noexec      不允许执行二进制文件
    exec        允许执行二进制文件 
    auto        mount -a 开机自动挂载 
    noauto      mount -a 开机不自动挂载 
    usrquota    支持用户级磁盘配额功能
    grpquota    支持组级磁盘配额功能
    acl         支持facl功能 
    remount 在线重新挂载 
    pri            指定优先级
    
    

    四.链接文件

    软链接 或 符号链接 硬链接

    4.1.符号链接 symbolic link

    [root@youngfit ~]# echo 111 > /file1
    [root@youngfit ~]# ln -s /file1 /file11     //将文件file11软链接到file1
    [root@youngfit ~]# ll /file11 
    lrwxrwxrwx 1 root root 6 Dec 20 17:58 /file11 -> /file1
    
    [root@youngfit ~]# ll -i /file1 /file11 
    4599081 -rw-r--r-- 1 root root 4 Dec 20 17:57 /file1
        135 lrwxrwxrwx 1 root root 6 Dec 20 17:58 /file11 -> /file1
    
    [root@youngfit ~]# cat /file1 
    111
    [root@youngfit ~]# cat /home/file11 
    111
    
    [root@youngfit ~]# rm -rf /file1 
    [root@youngfit ~]# ll /file11 
    lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1   //已失效
    [root@youngfit ~]# cat /file11
    cat: /file11: No such file or directory
    
    

    4.2.硬链接

    [root@youngfit ~]# echo 222 > /file2
    
    [root@youngfit ~]# ln /file2 /file2-h1
    
    [root@youngfit ~]# ln /file2 /mnt/lv1/file2-h2 
    ln: failed to create hard link ‘/lv_sdb/file2-h2’ => ‘/file2’: Invalid cross-device link
    
    [root@youngfit ~]# ln /file2 /etc/file2-h3
    
    
    [root@youngfit ~]# ll -i /file2 /file2-h1 /etc/file2-h3  
    
    4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /etc/file2-h3
    
    4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2
    
    4599081 -rw-r--r-- 3 root root 4 Dec 20 18:03 /file2-h1
    
    [root@youngfi ~]# rm -rf /file2
    [root@youngfi ~]# cat /file2-h1 
    222
    
    

    把一些重要文件做多个链接

    注:硬链接 1. 不能跨文件系统(分区)

    ​ 2. 不支持目录做硬链接

     [root@youngfit home]# ln /home/  /mnt 
     ln: “/home/”: 不允许将硬链接指向目录
    
    

    警告:删除目录软链时;

    [root@youngfit ~]# mkdir /home/it1000 
    
    [root@youngfit ~]# touch /home/it1000/file{1..10} 
    
    [root@youngfit ~]# ln -s /home/it1000/ /var/
    
    
    [root@youngfit ~]# rm -rf /var/it1000             //删除目录软链接
    
    [root@youngfit ~]# rm -rf /var/it1000/            //删除目录下的文件 
    
    

    软链接和硬链接的区别:

    • 软链接可以跨文件系统,硬链接不可以;
    • 软链接可以对目录进行连接,硬链接不可以;
    • 删除源文件之后,软链接失效,硬链接无影响;
    • 两种链接都可以通过命令 ln 来创建;
    • inode,软连接相同,硬链接不同,用ll -i 查看inode
    • ln 默认创建的是硬链接;
    • 使用 -s 参数可以创建软链接。

    相关文章

      网友评论

          本文标题:存储管理Ⅱ-swap、逻辑卷

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