第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

相关文章

  • 操作系统第四章【1】程序编译连接

    第4章存储器管理 ————存储器管理部分可分为以下几个方面展开 1程序的装入和链接 ...

  • 第08章 存储管理1

    管理磁盘流程三部曲 2.创建分区 磁盘 /dev/sdb:2147 MB, 2147483648 字节,41943...

  • 存储管理1

    存储部件的层次 可移动存储介质->磁盘->磁盘缓存->主存->高速缓存->cpu寄存器 1、程序的装入和链接 多道...

  • 存储管理(1)

    内存管理功能 存储器功能要求:容量足够大,速度足够快,信息永久保存,多道程序并行(共享和保护) 实际储存体系Cac...

  • 操作系统:存储管理(1)

    1 内容 固定分区存储管理 可变分区存储管理 内存扩充技术 分页 段式 段页式 Linux存储管理 Solaris...

  • 阿里巴巴大数据实践(数据管理篇)

    第12章 元数据第13章 计算管理第14章 存储和成本管理第15章 数据质量第16章 数据应用 第12章 元数据 ...

  • 计算机二级错题集(背背佳)

    1请求分页或请求分段式存储管理主要采用虚拟存储管理技术。虚拟存储管理技术。 2 筛选可以帮我们隐藏不想看到的信息 ...

  • 操作系统知识点大总汇

    一、操作系统基础知识 操作系统的作用:用户接口、存储管理、文件管理、设备管理、处理机管理。 1.存储管理: 2.处...

  • OC基础(六)——内存管理

    内存管理概述 内存管理内存的作用:存储数据. 如何将数据存储到内存之中.声明1个变量.然后将数据存储进去. 当数据...

  • 2019-09-22存储类&作用域&生命周期&链接属性

    1.概念解析 1.1、存储类 (1)存储类就是存储类型,也就是描述C语言变量在何种地方存储。(2)内存有多种管理方...

网友评论

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

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