第08章 存储管理1

作者: fe8478c7ba2a | 来源:发表于2018-04-17 20:25 被阅读29次
    管理磁盘流程三部曲
                分区(MBR或者GPT) ---->文件系统 Filesystem ----> 挂载mount
    1.查看磁盘信息
        方法1
            注意:kvm虚拟化磁盘vda,真实服务器上sda
                  [root@localhost ~]# ll /dev/sd*
                  brw-rw----. 1 root disk 8,  0 1月  25 09:35 /dev/sda
                  brw-rw----. 1 root disk 8,  1 1月  25 09:35 /dev/sda1
                  brw-rw----. 1 root disk 8,  2 1月  25 09:35 /dev/sda2
                  brw-rw----. 1 root disk 8, 16 1月  25 09:35 /dev/sdb
                  brw-rw----. 1 root disk 8, 32 1月  25 09:35 /dev/sdc
                  brw-rw----. 1 root disk 8, 48 1月  25 09:35 /dev/sdd
    
         方法2
                    
                  [root@server0 ~]# lsblk 
                  NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
                  vda 253:0 0 10G 0 disk 
                  └─vda1 253:1 0 10G 0 part /
                  vdb 253:16 0 10G 0 disk 
                  vdc 252:32 0 8G 0 disk
         名称 设备类型 序号 是否可移动设备  大小  是否只读  磁盘或分区  挂载点
                注意
                    vmware的磁盘名称/dev/sda
                    kvm的磁盘名称/dev/vda
    
    2.创建分区
                fdisk(MBR)
                    
         MBR 管理分区
           1.创建分区
                  [root@localhost ~]# fdisk      /dev/sdb
                  n     //创建新分区
                  p     //主分区
                  1     //1号分区
                  回车    //起始扇区
                  +100M //结束大小
                  w         //保存分区设置。
    
        查看分区创建信息
                # fdisk -l /dev/sdb
                  # partprobe /dev/sdb      //在有缓存的时候,刷新磁盘分区表。
                  [root@localhost ~]# fdisk -l /dev/sdb
    

    磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
    Units = 扇区 of 1 * 512 = 512 bytes
    扇区大小(逻辑/物理):512 字节 / 512 字节
    I/O 大小(最小/最佳):512 字节 / 512 字节
    磁盘标签类型:dos
    磁盘标识符:0x787eea5e

    设备 Boot Start End Blocks Id System
    /dev/sdb1 2048 411647 204800 83 Linux
    /dev/sdb2 411648 1026047 307200 83 Linux
    /dev/sdb3 1026048 1435647 204800 83 Linux
    /dev/sdb4 1435648 4194303 1379328 5 Extended
    /dev/sdb5 1437696 1847295 204800 83 Linux
    /dev/sdb6 1849344 2258943 204800 83 Linux
    /dev/sdb7 2260992 4194303 966656 83 Linux
    [root@localhost ~]#

    不管是ll 还是fdisk,都能看到多个新分区,sdb1sdb3是主分区,sdb4扩展分区,sdb57逻辑分区。

    3.创建文件系统(格式化)centos7默认使用xfs
        文件系统:储物柜;格子柜
            方法一:# mkfs.ext4 /dev/sdb1
                问题:未挂载的分区,如何查询文件系统
                        
                            
            方法二:# mkfs.xfs /dev/sdb2(了解)
                文件系统类型XFS和EXT4在后续章节讲解。在此使用哪种都可以。
                后续的分区,如果使用,就必须格式化
    
    4.挂载mount
            方法一:手动挂载(重启失效)
                    创建挂载点,一个分区一个挂载点
                    # mkdir /mnt/disk1
                    # mkdir /mnt/disk2
                    # mount -t ext4  /dev/sdb1 /mnt/disk1(了解) //手动不推荐
                    # mount -t xfs  /dev/sdb2 /mnt/disk2 //手动不推荐
            方法二:自动挂载(重启不失效)
                    第一步:查看分区的ID
                       # blkid
                    第二步:使用UUID来自动挂载分区
                    # vim /etc/fstab
                  UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" /mnt/disk1 auto defaults 0 0 
                  UUID="4d26172c-7aff-4388-baa5-c6756c014d52" /mnt/disk2 ext4 defaults 0 0
                  分区信息   挂载点(文件夹)  文件系统类型   属性(默认)  压缩  检测
                    第三步:手动刷新
                            # mount -a
    
                注意/etc/fstab中有固定格式
                     磁盘                   挂载点       文件系统        属性    备份  检测
                  /dev/vdb1             /mnt/disk1    xfs或者auto    default    0     0
    
    5.查看挂载信息
                方法1 df -hT
                    [root@server0 ~]# df -Th
    

    2.逻辑卷LVM

        目的:管理磁盘的一种方式,性质与基本磁盘无异
        特点:随意扩张大小,缩减大小,快照备份。
        流程
            基本分区(MBR|GPT) ----> Filesystem ----> mount
            逻辑卷     ----> Filesystem ----> mount
        工作原理
            名词
                  PV:物理卷(Physical volume)
                  VG:卷组(Volume Group)
                  LV:逻辑卷(Logical Volume)
                  PE:物理块(Physical Extent)
                  LE:逻辑块(Logical Extent)
    
    一、创建LVM
            准备物理磁盘
                0. 准备物理磁盘(可以是: /dev/sdb /dev/sdc1 (建立在RIAD之上))
                  [root@server0 ~]# ll /dev/sd*
                  brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/sdc
                  brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/sdd
                  brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/sde
                  建议使用相同的磁盘名称。
            如果再CENTOS6中,千万记得将分区类型更改为8E
    1. pv
        1 将物理磁盘,转换成物理卷-PV
                  [root@server0 ~]# pvcreate /dev/sdc
                  Physical volume "/dev/sdc" successfully created
        查看PV信息
                        
                  [root@server0 ~]# pvscan 
                  PV /dev/vdd lvm2 [2.00 GiB]
                  Total: 1 [2.00 GiB] / in use: 0 [0 ] / in no VG: 1 [2.00 GiB]
    
                  [root@server0 ~]# pvs
                  PV VG Fmt Attr PSize PFree
                  /dev/vdd lvm2 a-- 2.00g 2.00g
    
                  [root@server0 ~]# pvdisplay
    2. vg
          2.创建卷组-VG
                  [root@server0 ~]# vgcreate vg1 /dev/sdc
                  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 all physical volumes. This may take a while...
                  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
    
    3. lv
            方法一:
                  [root@server0 ~]# lvcreate -L 200M -n lv2 vg1
                  指定大小,单位M,G
         查看LV
                        
                  [root@server0 ~]# lvscan 
                  ACTIVE '/dev/vg1/lv1' [400.00 MiB] inherit
                  ACTIVE '/dev/vg1/lv2' [200.00 MiB] inherit
    4. 创建文件系统并挂载
            方法一:手动挂载
                创建文件系统
    
                  [root@server0 ~]# mkfs.ext4 /dev/vg1/lv2
                创建挂载点
                  [root@server0 ~]# mkdir  /mnt/lv2
                 挂载
                  [root@server0 ~]#mount /dev/vg1/lv2 /lv2
           查看挂载结果
                            
             方法二:自动挂载
                    vim /etc/fstab
                    /dev/vg1/lv1    /mysql_data     ext4    defaults 0   0
                        分区          挂载点       文件系统      属性  压缩 检测
                    mount -a
    

    VG管理

            ==扩大VG vgextend==
                环境:/dev/vg1 容量由4G 扩容到 6G。
                ==扩大VG vgextend==
            步骤1,创建PV。而后使用第二步,将PV增加到VG中。
                  [root@server0 ~]# pvcreate /dev/sdd1
    
            步骤2:扩展VG,同时包含方法1.
                  [root@server0 ~]# vgextend vg1 /dev/sdd1
                  Volume group "vg1" successfully extended
    
          扩容完成
            查看VG
                [root@server0 ~]# vgs
                  VG #PV #LV #SN Attr VSize VFree
                  vg1 2 2 0 wz--n- 3.99g 3.76g
        ==减小VG vgreduce==
                警告
                    ==减小VG ,命令虽少。但千万需要注意的是数据迁移。
                环境介绍:
                    卷组vg1
                  物理卷sdc,sdd1和sde(查看物理卷pvs命令)
                  sdc物理卷中有数据
                  为了避免vg缩减影响数据,请先将sdd中的数据移动到sde中。
           1.查看当前的VG中PV的使用情况
                    
                  [root@server0 ~]# pvs
                  PV VG Fmt Attr PSize PFree
                  /dev/sdc vg1 lvm2 a-- 2.00g 1.76g
                  /dev/sdd1 vg1 lvm2 a-- 2.00g 2.00g
                  /dev/sde vg1 lvm2 a-- 2.00g 2.00g
                  注意观察,PV的空间。一个是使用过的,一个是满的。
    
            2. pvmove,会将sdd中的数据,移动到sde中。
                  [root@server0 ~]# pvmove /dev/sdc
                  /dev/sdc: Moved: 16.7%
                  /dev/sdc: Moved: 100.0%
                  可以看到移动过程。
    
           再次查看,空间已经发生变化。
                  [root@localhost ~]# pvs
                    PV         VG     Fmt  Attr PSize   PFree 
                    /dev/sda2  centos lvm2 a--  <19.00g     0 
                    /dev/sdc   vg1    lvm2 a--   <2.00g <2.00g
                    /dev/sdd1  vg1    lvm2 a--   <2.00g  1.80g
                    /dev/sde   vg1    lvm2 a--   <2.00g <2.00g
              3.vgreduce VG缩减。
                    [root@server0 ~]# vgreduce vg1 /dev/sdd
                  Removed "/dev/sdd" from volume group "vg1"
            再次观察,VG中少了一个PV
                    [root@server0 ~]# vgs
                  VG #PV #LV #SN Attr VSize VFree
                  vg1 1 2 0 wz--n- 2.00g 1.76g
                  观察,PV的数量变少了。
    

    LV扩容

     扩大LV lvextend
        1. lv扩容
                    1.查看VG空间。
                  [root@server0 ~]# vgs
                  VG #PV #LV #SN Attr VSize VFree
                  vg1 2 2 0 wz--n- 1.88g 1.00g
                  请观察,VG是否有剩余空间。
    
        2.扩容LV。 
                  [root@server0 ~]# lvextend -L +200M /dev/vg1/lv2
                  增加200M空间,给lv2
    
                查看LV
                            
                  [root@server0 ~]# lvscan 
                  ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit
                  ACTIVE '/dev/vg1/lv2' [300.00 MiB] inherit
    
                  观看LV大小已经发生改变。
                    如果希望缩减LV,1请注意数据保存。2使用lvreduce
            注意
                        xfs的lvm不支持缩容
                             Xfs filesystem shrinking is unsupported 
    
    FS扩容
                    先观察文件系统当前容量。
                  [root@server0 ~]# df -Th 
                  /dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2
    
                  . ext2/3/4文件系统扩容
                  [root@server0 ~]# resize2fs /dev/vg1/lv2
                  再次观察df -hT 的分区大小。和上一次的对比一下。大小已经发生改变。
        查看FS
                            
                  [root@server0 ~]# df -Th
                  Filesystem Type Size Used Avail Use% Mounted on
                  /dev/mapper/vg1-lv1 xfs 765M 67M 698M 9% /mnt/lv1
                  /dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2
                  请注意对比,之前的输出结果,文件系统的大小发生改变。
                    如果您的文件系统,不是EXT4。那请用下列命令来更新XFS文件系统
                        xfs文件系统扩容请注意,不同的文件系统,扩容指令不同。
                        [root@server0 ~]# xfs_growfs /dev/vg1/lv1
    
    减小LV lvreduce
            减容注意事项(了解)
                环境介绍
                        逻辑卷/dev/vg1/lv2,大小400M,并挂载到/mnt/lv2
                  需要先将lv卸载(umount),再进行减容操作。
                    1.首先查看磁盘使用情况
                        df -hT
                            注意分区大小400M
                            /dev/mapper/vg1-lv2     ext4      380M  2.3M  356M    1% /mnt/lv2
                    2、卸载
                        umount /dev/vg1/lv2 
                    3、调整分区大小
                        e2fsck -f /dev/vg1/lv2 
                        resize2fs -p /dev/vg1/lv2 200M
                    4、设置空闲空间,减容
                        lvreduce -L 200M /dev/vg1/lv2
                    5、挂载上/mnt/lv2,查看磁盘使用情况
                         mount /dev/vg1/lv2  /mnt/lv2/
                         df -h
                            看到分区大小已经200M
                            /dev/mapper/vg1-lv2     ext4      186M  1.6M  171M    1% /mnt
                        千万注意,不要对已经挂载的LV进行兼容,会损坏文件系统。
                        千万注意,缩减后的LV大小,要大于存储数据的大小。
                  (重新格式化才能用)
    

    LVM快照snapshot

            快照的目的
                快速-------备份数据。
            快照与备份
                备份原理
                备份窗口
                数据一致性
                快照技术
                    COW
                    ROW
       1. 创建快照 (EXT4)
                快照之前准备一些文件
                1. 创建快照 卷(EXT4)
                  [root@server0 ~]# lvcreate -L 128M -s -n lv2-snap /dev/vg1/lv2
                  或者这样看呢,创建LV,名字lv2-snap,根据lv2进行快照,大小128M
                  lvcreate -n lv2-snap  -s /dev/vg1/lv2  -L 128M
    
           查询快照卷大小。
                  [root@server0 ~]# lvs
                  LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
                  lv1 vg1 -wi-ao---- 768.00m 
                  lv2 vg1 owi-aos--- 512.00m 
                  lv2-snap vg1 swi-aos--- 128.00m lv2 5.92 
                  实验到这里就结束了。
                注意:制作快照限制,受VG大小。
       2.挂载快照卷,恢复数据(验证)
                
       3 将快照卷挂载,拷贝出数据。可以用作回复数据使用了。
                  [root@server0 ~]# mkdir    /mnt/lv2-snap
                  [root@server0 ~]# mount -o ro /dev/vg1/lv2-snap /mnt/lv2-snap/
    
    查看Snapshot
                1 查看两个卷的挂载情况。
                  [root@server0 ~]# df -Th
                  Filesystem Type Size Used Avail Use% Mounted on
                  /dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2
                  /dev/mapper/vg1-lv2--snap ext4 488M 32M 429M 7% /mnt/lv2-snap
    
                2 查看两个卷的关系
                  [root@server0 ~]# lvscan 
                  ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit
                  ACTIVE Original '/dev/vg1/lv2' [512.00 MiB] inherit
                  ACTIVE Snapshot '/dev/vg1/lv2-snap' [128.00 MiB] inherit
    
                3 查看文件内容。根据情况进行使用。
                  [root@server0 ~]# ls /mnt/lv2
                  etc lost+found
                  [root@server0 ~]# ls /mnt/lv2-snap/
                  etc lost+found
    
                4. 观察Snapshot
                  [root@server0 ~]# lvs
                  LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
                  lv1 vg1 -wi-ao---- 768.00m 
                  lv2 vg1 owi-aos--- 512.00m 
                  lv2-snap vg1 swi-aos--- 128.00m lv2 30.56 
    4.提示xfs文件系统快照注意事项
                
                  XFS:不识别uuid ,所以需要单独加上一个-o nouuid 来忽略掉。就可以使用xfs的快照了。
                  [root@server0 ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /mnt/lv1-snap/
                  挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据
    

    交换分区管理 Swap

        简介
            作用: ‘提升‘ 内存的容量,防止OOM(Out Of Memory)
            swap大小
                推荐
                    设置交换分区大小为内存的2倍
                生产
                    大于 4GB 而小于 16GB 内存的系统,最小需要 4GB 交换空间;
                    大于 16GB 而小于 64GB 内存的系统,最小需要 8GB 交换空间;
                    大于 64GB 而小于 256GB 内存的系统,最小需要 16GB 交换空间。
        一、查看当前的交换分区
            一、查看当前的交换分区
                  [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
                  当前系统中,没有swap。如果你的系统中有,请观察大小,后续实验会增加swap大小。
        二、增加交换分区
            类型
                可以是分区或者LVM或者File
            ===分区/LVM===
                ===分区===
                1. 准备分区(准备将/dev/sde磁盘,划分为1G分区)
                  [root@server0 ~]# fdisk    /dev/sde (t转换分区的ID 82)
                  [root@server0 ~]# partprobe /dev/sde
                  [root@server0 ~]# ll /dev/sde*
                  brw-rw----. 1 root disk 253, 16 12月 6 10:18 /dev/sde
                  brw-rw----. 1 root disk 253, 17 12月 6 10:18 /dev/sde1
    
                2.格式化
                  [root@server0 ~]# mkswap /dev/sde1
    
                3.挂载
                  [root@server0 ~]# blkid /dev/sde1
                  /dev/sde1: UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" TYPE="swap" 
    
                  [root@server0 ~]# vim /etc/fstab
                  UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap defaults 0 0
    
                  [root@server0 ~]# swapon -a (读取/etc/fstab)
                  [root@server0 ~]# swapon -s
                  Filename Type Size Used Priority
                  /dev/vdb1 partition 524284 0 -1
    
    ===File===(了解)

    ===File===
    [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=/swap2.img bs=1M count=512
    或者
    [root@server0 ~]# dd </dev/zero >/swap2.img bs=1M count=512

    [root@server0 ~]# mkswap /swap2.img

    [root@server0 ~]# vim /etc/fstab
    /swap2.img swap swap defaults 0 0

    由于文件型扩展SWAP会提示权限不够。所以扩大一下权限。
    [root@server0 ~]# swapon -a
    swapon: /swap2.img: insecure permissions 0644, 0600 suggested.
    [root@server0 ~]# chmod 600 /swap2.img
    [root@server0 ~]# swapon -a

    [root@server0 ~]# swapon -s
    Filename Type Size Used Priority
    /dev/vdb1 partition 524284 0 -1
    /swap2.img file 524284 0 -2

    对交换分调优 [扩展]
            关于swap优先级
                 swap分区的优先级(Priority)从高到低依次使用,最高32767,最低优先级是0
    
                  这样设置使得Linux并行的使用优先级相同的swap分区(Priority = 1的分区),这会大幅的提高对swap的读写。当这些分区满了,就会使用较低优先级swap分区(Priority = 0的分区) 
            设置swap优先级
                多个交换分区分布在不同的磁盘
                  挂载时,使用相同的优先级
    
                  [root@server0 ~]# vim /etc/fstab
                  UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap defaults,pri=1 0 0
                  UUID="ea5b1c77-e540-465c-9644-0d75457f8b45" swap swap defaults,pri=1 0 0
        pri是优先级的意思,设置相同即可。
    
                  [root@server0 ~]# swapon -a
                  [root@server0 ~]# swapon -s
                  Filename Type Size Used Priority
                  /dev/sdb1 partition 524284 0 1
                  /dev/sdc1 partition 524284 0 1
    

    相关文章

      网友评论

        本文标题:第08章 存储管理1

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