• 存储管理


    存储基础知识

    主要知识点: 基本分区、逻辑卷LVM、EXT3/4/XFS文件系统、RAID

    从工作原理区分
    机械
    固态

    从磁盘尺寸
    3.5 2.5 1.8

    从插拔方式
    热插拔
    非热插拔

    从硬盘主要接口
    IDE —— SATA I/II/III
    SCSI —— SAS
    PCIE
    FC
    kernel对不同接口硬盘命名方式
    OS IDE(并口) SATA(串口) SCSI
    RHEL5 /dev/hda /dev/sda /dev/sda
    RHEL6 /dev/sda /dev/sda /dev/sda
    RHEL7 /dev/sda /dev/sda /dev/sda
    KVM /dev/vda(半虚拟化驱动)
        /dev/sda(全虚拟化驱动)

    HP服务器硬盘
    /dev/cciss/c0d0
    /dev/cciss/c0d0p1 //c0第一个控制器, d0第一块磁盘, p1分区1
    /dev/cciss/c0d0p2 //c0第一个控制器, d0第一块磁盘, p2分区2

    从存储连接方式
    本地存储
    外部存储 scsi线 stat线 sas线 FC线
    网络存储 以太网络 FC网络

    从分区方式区分
    MBR <2TB fdisk 14个分区(4个主分区,扩展分区,逻辑分区) 例如: 3主 + 1扩展(n逻辑)
    GPT >2TB gdisk(parted) 128个主分区
    注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!

    KVM增加硬盘

    半虚拟化驱动磁盘: online
    全虚拟化驱动磁盘: offline

    基本分区管理

    基本分区(MBR|GPT) ----> Filesystem ----> mount
    逻辑卷 ----> Filesystem ----> mount

    [root@server0 ~]# ll /dev/vd*
    brw-rw----. 1 root disk 253, 0 11月 30 15:02 /dev/vda
    brw-rw----. 1 root disk 253, 1 11月 30 15:02 /dev/vda1
    brw-rw----. 1 root disk 253, 16 11月 30 15:02 /dev/vdb
    brw-rw----. 1 root disk 252, 32 11月 30 15:02 /dev/vdc

    [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

    ====fdisk====

    MBR 14个分区(4个主分区,扩展分区,逻辑分区)
    1.创建分区
    # fdisk /dev/vdb
    # fdisk -l /dev/vdb
    # partprobe /dev/vdb
    # ll /dev/vdb*
    brw-rw----. 1 root disk 253, 16 11月 30 15:13 /dev/vdb
    brw-rw----. 1 root disk 253, 17 11月 30 15:13 /dev/vdb1
    brw-rw----. 1 root disk 253, 18 11月 30 15:13 /dev/vdb2

    ====gdisk====

    GPT 128个主分区
    1.创建分区
    # gdisk -l /dev/vdc
    # gdisk /dev/vdc
    # partprobe /dev/vdc
    # ll /dev/vdc*
    brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/vdc
    brw-rw----. 1 root disk 253, 33 Jun 6 17:38 /dev/vdc1
    brw-rw----. 1 root disk 253, 34 Jun 6 17:38 /dev/vdc2

    fdisk -l /dev/vdb

    2.创建文件系统(格式化)centos7默认使用xfs
    # mkfs.xfs /dev/vdb1
    # mkfs.ext4 /dev/vdb2

    3.挂载
    # mkdir /mnt/disk1
    # mkdir /mnt/disk2
    # mount -t xfs -o ro /dev/vdb1 /mnt/disk1 //手动不推荐
    # umount /mnt/disk1

    # blkid
    # vim /etc/fstab
    UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" /mnt/disk1 auto defaults 0 0
    UUID="4d26172c-7aff-4388-baa5-c6756c014d52" /mnt/disk2 ext4 ro 0 0
    # mount -a

    [root@server0 ~]# df -Th
    Filesystem Type Size Used Avail Use% Mounted on
    /dev/vda1 xfs 10G 3.2G 6.8G 33% /
    devtmpfs devtmpfs 906M 0 906M 0% /dev
    tmpfs tmpfs 921M 140K 921M 1% /dev/shm
    tmpfs tmpfs 921M 17M 904M 2% /run
    tmpfs tmpfs 921M 0 921M 0% /sys/fs/cgroup
    /dev/vdb1 xfs 197M 11M 187M 6% /mnt/disk1
    /dev/vdb2 ext4 283M 2.1M 262M 1% /mnt/disk2

    [root@server0 ~]# mount
    mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
    hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
    /dev/vdb1 on /mnt/disk1 type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
    /dev/vdb2 on /mnt/disk2 type xfs (ro,relatime,seclabel,attr2,inode64,noquota)

    LVM管理

    创建LVM
    VG扩展/缩小
    LV扩容/文件系统扩容
    LVM Snapshot [扩展]

    基本分区(MBR|GPT) ----> Filesystem ----> mount
    逻辑卷 ----> Filesystem ----> mount

    一、创建LVM
    0. 准备物理磁盘
    可以是: /dev/sdb /dev/sdc1 (建立在RIAD之上)
    [root@server0 ~]# ll /dev/vd{c,d,e}
    brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/vdc
    brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/vdd
    brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/vde

    1. pv
    [root@server0 ~]# pvcreate /dev/vdd
    Physical volume "/dev/vdd" successfully created

    [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

    2. vg
    [root@server0 ~]# vgcreate vg1 /dev/vdd
    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 10 -n lv1 vg1
    [root@server0 ~]# lvcreate -L 200M -n lv2 vg1

    [root@server0 ~]# lvscan
    ACTIVE '/dev/vg1/lv1' [640.00 MiB] inherit
    ACTIVE '/dev/vg1/lv2' [256.00 MiB] inherit

    4. 创建文件系统并挂载
    [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
    [root@server0 ~]# df
    Filesystem 1K-blocks Used Available Use% Mounted on
    /dev/mapper/vg1-lv1 651948 32928 619020 6% /mnt/lv1
    /dev/mapper/vg1-lv2 245671 2062 226406 1% /mnt/lv2


    二、VG管理
    ==扩大VG vgextend==
    1. pv
    [root@server0 ~]# pvcreate /dev/vde

    2. vgextend
    [root@server0 ~]# vgextend vg1 /dev/vde
    Volume group "vg1" successfully extended
    [root@server0 ~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    vg1 2 2 0 wz--n- 3.99g 3.76g

    ==减小VG vgreduce==
    1.查看当前的VG中PV的使用情况
    [root@server0 ~]# pvs
    PV VG Fmt Attr PSize PFree
    /dev/vdd vg1 lvm2 a-- 2.00g 1.76g
    /dev/vde vg1 lvm2 a-- 2.00g 2.00g

    2. pvmove数据到其它PV
    [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

    3.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.76g


    三、LV扩容
    1. lv扩容
    [root@server0 ~]# vgs
    VG #PV #LV #SN Attr VSize VFree
    vg1 2 2 0 wz--n- 1.88g 1.00g

    [root@server0 ~]# lvextend -L 800M /dev/vg1/lv1
    [root@server0 ~]# lvextend -L +800M /dev/vg1/lv1

    [root@server0 ~]# lvextend -l 15 /dev/vg1/lv1
    [root@server0 ~]# lvextend -l +15 /dev/vg1/lv1

    =======================================
    +50%FREE
    =======================================

    [root@server0 ~]# lvscan
    ACTIVE '/dev/vg1/lv1' [768.00 MiB] inherit
    ACTIVE '/dev/vg1/lv2' [512.00 MiB] inherit

    2. FS扩容
    [root@server0 ~]# df -Th
    /dev/mapper/vg1-lv1 xfs 637M 67M 570M 11% /mnt/lv1
    /dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2

    a. xfs
    [root@server0 ~]# xfs_growfs /dev/vg1/lv1

    b. ext2/3/4
    [root@server0 ~]# resize2fs /dev/vg1/lv2

    [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


    四、LVM快照snapshot
    1. 创建快照 (EXT4)
    [root@server0 ~]# lvcreate -L 128M -s -n lv2-snap /dev/vg1/lv2
    [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

    [root@server0 ~]# mount -o ro /dev/vg1/lv2-snap /mnt/lv2-snap/

    [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

    [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

    [root@server0 ~]# ls /mnt/lv2
    etc lost+found
    [root@server0 ~]# ls /mnt/lv2-snap/
    etc lost+found

    2. 修改原卷的数据

    3. 观察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


    XFS:
    [root@server0 ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /mnt/lv1-snap/s
    挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据


    [root@server0 ~]# dmsetup ls --tree
    vg1-lv2--snap (252:5)
    ├─vg1-lv2--snap-cow (252:7)
    │ └─ (253:17)
    └─vg1-lv2-real (252:6)
    ├─ (253:17)
    └─ (253:18)
    vg1-lv2 (252:1)
    └─vg1-lv2-real (252:6)
    ├─ (253:17)
    └─ (253:18)

    快照自动增长:
    [root@server0 ~]# vim /etc/lvm/lvm.conf
    snapshot_autoextend_threshold = 70
    snapshot_autoextend_percent = 20
    [root@server0 ~]# systemctl restart lvm2-monitor.service
    [root@server0 ~]# systemctl enable lvm2-lvmetad.service
    注:快照卷 和 原卷 使用同一VG空间

    交换分区管理 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

    ===分区===
    1. 准备分区
    [root@server0 ~]# fdisk /dev/vdb (t转换分区的ID 82)
    [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

    2.初始化
    [root@server0 ~]# mkswap /dev/vdb1

    3.挂载
    [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===
    [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 default 0 0

    [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


    三、对交换分调优 [扩展]
    多个交换分区分布在不同的磁盘
    挂载时,使用相同的优先级

    [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

    [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

    测试使用内存: RHEL6
    [root@server0 ~]# mount -t tmpfs /dev/shm /mnt/memory
    [root@server0 ~]# dd if=/dev/zero of=/mnt/memory/test bs=1M count=1000

    自动挂载 Automount

    挂载是由访问产生的
    卸载是由超时产生的


    一、手动挂载(临时)
    mount -t 文件系统类型 -o 选项1,选项2... 设备文件 挂载点

    ===本地设备文件
    /dev/cdrom 光盘设备
    /dev/sr0 光盘设备
    /dev/sda5 基本分区
    /dev/vg01/lv01 逻辑卷
    /dev/md0 软RAID设备
    /var/dvd.iso ISO镜像文件
    [root@CentOS7 ~]# mount -t xfs -o ro /dev/sda5 /mnt/sda5
    [root@CentOS7 ~]# mount -t iso9660 -o loop /var/dvd.iso /mnt/dvd
    [root@CentOS7 ~]# mount -t iso9660 /dev/cdrom /mn/cd

    ===网络存储设备文件
    准备NFS存储见本页后
    NFS: 192.168.122.137:/home/dir1
    CIFS: //192.168.10.240/dir2

    NFS Client
    [root@CentOS7 ~]# mount -t nfs 192.168.122.137:/home/dir1 /mnt/dir1
    [root@CentOS7 ~]# mount -t cifs -o user=allice,pass=111 //192.168.0.240/dir2 /mnt/dir2


    二、实现自动挂载
    第一种解决方案: /etc/fstab
    /dev/sda5 /mnt/sda5 xfs defaults 0 0
    192.168.122.137:/home/dir1 /mnt/dir1 nfs defaults 0 0
    //192.168.10.240/dir2 /mnt/dir2 cifs defaults,user=alice,pass=111 0 0
    优点:可以实现开机自动挂载
    缺点:由于网络连接的不稳定性,会导致网络设备挂载失败
    结论:适合挂载本地设备和持续使用的设备

    第二种解决方案: automount按需挂载
    [root@CentOS7 ~]# yum -y install autofs

    案例1:使用automount将192.168.122.137:/home/dir1 /nas/dir1


    父挂载点:/nas
    子挂载点:dir1

    [root@webserver ~]# vim /etc/auto.master
    /nas /etc/auto.nfs

    [root@webserver ~]# vim /etc/auto.nfs
    dir1 -rw 192.168.122.137:/home/dir1
    dir2 -rw 192.168.122.137:/home/dir2

    [root@webserver ~]# systemctl restart autofs
    [root@webserver ~]# systemctl enable autofs
    [root@webserver ~]# ls /nas/dir1

    扩展知识:准备NFS 存储

    [root@nas ~]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)

    [root@nas ~]# systemctl stop firewalld.service
    [root@nas ~]# systemctl disable firewalld.service

    [root@nas ~]# mkdir /home/dir1
    [root@nas ~]# touch /home/dir1/file{1..10}

    [root@nas ~]# vim /etc/exports
    /home/dir1 *(rw,sync,no_root_squash)

    [root@nas ~]# systemctl restart nfs-server.service
    [root@nas ~]# systemctl enable nfs-server.service

    最终提供的NFS共享为:
    192.168.122.137:/home/dir1

    文件链接

    软链接 或 符号链接
    硬链接

    一、符号链接 symbolic link
    [root@CentOS7 ~]# echo 111 > /file1
    [root@CentOS7 ~]# ln -s /file1 /home/file11
    [root@CentOS7 ~]# ll /home/file11
    lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

    [root@CentOS7 ~]# ll -i /file1 /home/file11
    4599081 -rw-r--r-- 1 root root 4 Dec 20 17:57 /file1
    135 lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1

    [root@CentOS7 ~]# cat /file1
    111
    [root@CentOS7 ~]# cat /home/file11
    111

    [root@CentOS7 ~]# rm -rf /file1
    [root@CentOS7 ~]# ll /home/file11
    lrwxrwxrwx 1 root root 6 Dec 20 17:58 /home/file11 -> /file1


    二、硬链接
    [root@CentOS7 ~]# echo 222 > /file2
    [root@CentOS7 ~]# ln /file2 /file2-h1
    [root@CentOS7 ~]# ln /file2 /home/file2-h2
    ln: failed to create hard link ‘/home/file2-h2’ => ‘/file2’: Invalid cross-device link
    [root@CentOS7 ~]# ln /file2 /etc/file2-h3

    [root@CentOS7 ~]# echo 222 > /file2
    [root@CentOS7 ~]# ln /file2 /file2-h1
    [root@CentOS7 ~]# ln /file2 /home/file2-h2
    ln: failed to create hard link ‘/home/file2-h2’ => ‘/file2’: Invalid cross-device link
    [root@CentOS7 ~]# ln /file2 /etc/file2-h3

    [root@CentOS7 ~]# 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

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

    注:硬链接
    1. 不能跨文件系统(分区)
    2. 不支持目录做硬链接
    [root@CentOS7 home]# ln /home/ /mnt
    ln: “/home/”: 不允许将硬链接指向目录

    警告:删除目录软链时:


    # mkdir /home/it1000
    # touch /home/it1000/file{1..10}
    # ln -s /home/it1000/ /var/

    rm -rf /var/it1000/ 删除目录下的文件
    rm -rf /var/it1000 仅删除链接文件本身

    [root@CentOS7 ~]# ln -s /etc /home/
    [root@CentOS7 ~]# rm -rf /home/etc/

    磁盘阵列 RAID

    RAID:廉价磁盘冗余阵列(Redundant Array of Independent Disks)
    作 用:容错、提升读写速率


    RAID类型 个数 利用率 优缺点
    ------------------------------------------------------
    RAID0 条带集 2+ 100% 读写速率快,不容错
    RAID1 镜像集 2 50% 读写速率一般,容错
    RAID5 带奇偶校验条带集 3+ (n-1)/n 读写速率快,容错,允许坏一块
    RAID6 带奇偶校验条带集双校验 4+ (n-2)/n 读写快,容错,允许坏两块
    RAID01
    RAID10 RAID1的安全+RAID0的高速 4 50% 读写速率快,容错
    RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速率快,容错
    RAID60 RAID6的安全+RAID0的高速 8 (n-4)/n 读写速率快,容错
    ------------------------------------------------------

    一、不同场景RAID的使用
    RAID 实现方式
    硬RAID: 需要RAID卡,有自己的CPU,处理速度快
    软RAID: 通过操作系统实现,比如Windows、Linux

    二、RAID5 (3块硬盘) + 热备(1块硬盘)
    1. 准备4块硬盘
    [root@CentOS7 ~]# ll /dev/sd*
    brw-rw---- 1 root disk 8, 48 Jan 13 16:07 /dev/sdd
    brw-rw---- 1 root disk 8, 64 Jan 13 16:07 /dev/sde
    brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdf
    brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdg

    2. 创建RAID
    [root@CentOS7 ~]# yum -y install mdadm //确保mdadm命令可用
    [root@CentOS7 ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}
    mdadm: array /dev/md0 started.
    -C 创建RAID
    /dev/md0 第一个RAID设备
    -l5 RAID5
    -n RAID成员的数量
    -x 热备磁盘的数量

    3. 格式化,挂载
    [root@CentOS7 ~]# mkfs.xfs /dev/md0
    [root@CentOS7 ~]# mkdir /mnt/raid5
    [root@CentOS7 ~]# mount /dev/md0 /mnt/raid5
    [root@CentOS7 ~]# cp -rf /etc /mnt/raid5/etc1

    4. 查看RAID信息
    [root@CentOS7 ~]# mdadm -D /dev/md0 //-D 查看详细信息
    /dev/md0:
    Version : 1.2
    Creation Time : Mon Jan 13 16:28:47 2014
    Raid Level : raid5
    Array Size : 2095104 (2046.34 MiB 2145.39 MB)
    Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
    Raid Devices : 3
    Total Devices : 4
    Persistence : Superblock is persistent

    Update Time : Mon Jan 13 16:34:51 2014
    State : clean
    Active Devices : 3
    Working Devices : 4
    Failed Devices : 0
    Spare Devices : 1

    Layout : left-symmetric
    Chunk Size : 512K
    Number Major Minor RaidDevice State
    0 8 48 0 active sync /dev/sdd
    1 8 64 1 active sync /dev/sde
    4 8 80 2 active sync /dev/sdf

    3 8 96 - spare /dev/sdg

    5. 模拟一块硬盘损坏,并移除
    终端一:
    [root@CentOS7 ~]# watch -n 0.5 'mdadm -D /dev/md0 | tail' //watch持续查看
    终端二:
    [root@CentOS7 ~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde
    //模拟坏了并移除 -f --fail -r --remove

    6. 设置RAID开机生效
    [root@CentOS7 ~]# mdadm -D -s
    ARRAY /dev/md0 metadata=1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e
    [root@CentOS7 ~]# mdadm -D -s > /etc/mdadm.conf

    ========================================================
    mdadm选项:
    -s --scan
    -S --stop
    -D --detail
    -C --create
    -f --fail
    -r --remove
    -n --raid-devices=3
    -x --spare-devices=1
    -l --level=5
    ========================================================

    参考:
    Update Time : Mon Aug 4 22:47:47 2014
    State : clean, degraded, recovering
    Active Devices : 2
    Working Devices : 3
    Failed Devices : 0
    Spare Devices : 1

    Layout : left-symmetric
    Chunk Size : 512K

    Rebuild Status : 3% complete

    Name : localhost.localdomain:0 (local to host localhost.localdomain)
    UUID : 3df9624c:138a5b3e:2f557132:59a43d04
    Events : 41

    Number Major Minor RaidDevice State
    0 252 16 0 active sync /dev/vdb
    3 252 64 1 spare rebuilding /dev/vde
    4 252 48 2 active sync /dev/vdd

    Mount 挂载详解

    本节内容:
    常用挂载选项详解
    挂载设备文件、卷标、UUID
    ISO文件创建及挂载

    挂载选项 -t 文件系统类型 -o 选项1,选项2...
    示例:
    mount -t ext4 -o acl /dev/sdb1 /mnt/disk1
    文件系统类型:ext4,xfs,nfs,cifs,iso9660,loop

    例1:exec/noexec
    [root@CentOS7 ~]# mount /dev/vg01/lv01 /mnt/lv01
    [root@CentOS7 ~]# mount -o noexec /dev/vg01/lv02 /mnt/lv02
    [root@CentOS7 ~]# cp -rf /bin/date /mnt/lv01
    [root@CentOS7 ~]# cp -rf /bin/date /mnt/lv02
    [root@CentOS7 ~]# /mnt/lv01/date
    Fri Jan 10 10:40:21 CST 2014
    [root@CentOS7 ~]# /mnt/lv02/date
    -bash: /mnt/lv02/date: Permission denied
    [root@CentOS7 ~]# mount
    /dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
    /dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,noexec)

    没有指定任何选项,则为默认选项 man mount
    defaults
    Use default options: rw, suid, dev, exec, auto,
    nouser, async, and relatime.

    常见的挂载选项
    rw 读写
    ro 只读
    suid 支持suid
    dev 支持设备文件
    nodev 不支持设备文件
    noexec 不允许执行二进制文件
    exec 允许执行二进制文件
    auto mount -a 开机自动挂载
    noauto mount -a 开机不自动挂载
    async 异步写入
    sync 同步同入
    noatime 不更新访问时间atime
    usrquota 支持用户级磁盘配额功能
    grpquota 支持组级磁盘配额功能
    acl 支持acl功能
    remount 在线重新挂载
    pri 指定优先级

    ====================================================================================

    Relatime 驱动器访问优化

    POSIX 标​​准​要​求​操​作​系​统​维​护​记​录​每​个​文​件​最​后​一​次​被​访​问​的​文​件​系​统​元​数​据​。​这​个​时​间​戳​被​称​为atime,
    维​​护​它​需​要​一​个​重​复​的​对​存​储​的​写​入​操​作​。​这​些​写​入​操​作​让​存​储​是​设​备​及​其​连​接​保​持​忙​碌​和​通​电​状态​​。​因​
    为​很​少​应​用​程​序​会​使​用​ atim e 数​​据​,所​​以​这​个​存​储​设​备​活​动​是​在​浪​费​电​力​。​特​别​是​即​使​没​有​从​存​储中​​读​取
    该​文​件​也​会​发​生​写​入​存​储​的​事​件​,但​​是​从​缓​冲​中​写​入​。​有​时​,Linux 内​​核​还​支​持​ mount 的​​ noatime选​​项​,并​​
    不​在​使​用​此​选​项​挂​载​的​文​件​系​统​中​写​入​ atime。​​但​是​只​是​关​闭​这​个​特​性​是​有​问​题​的​,因​​为​有​些​应用​​程​序​会依​
    赖​ atime 数​​据​,并​​在​此​数​据​不​可​用​时​失​败​。

    红​​帽​企​业​版​ Linux 6 使​​用​的​内​核​之​后​此​另​一​个​可​替​换​选​项​ -relatime。​​Relatime 维​​护​ atime数​​据​,但不​​是
    ​每​次​访​问​该​文​件​时​都​更​改​。​启​用​这​个​选​项​,则​​只​在​上​次​更​新​ atime(mtime)后​​修​改​该​文​件​时​,或​​者最​​后​一​次
    ​访​问​该​文​件​是​在​相​当​长​一​段​时​间​前​(默​​认​为​一​天​)时​​才​会​将​ atime 数​​据​写​入​磁​盘​。
    默​​认​情​况​下​,所​​有​现​在​挂​载​的​文​件​系​统​都​启​用​ relatime。​​要​在​整​个​系​统​中​限​制​这​个​特​性​,请​​使​用​ boot 参
    数​​ default_relatime=0。​​如​果​默​认​在​某​个​系​统​中​启​用​ relatime,您​​可​以​通​过​使​用​选​项​ norelatime
    挂​​载​某​个​系​统​来​限​制​它​在​某​个​具​体​文​件​系​统​中​的​使​用​。​最​后​,要​​使​系​统​更​新​文​件​的​ atime 数​​据​的​默​认​周​期
    有​​所​不​同​,请​​使​用​ relatime_interval= 引​​导​参​数​,以​​秒​为​单​位​指​定​周​期​。​默​认​值​为​ 86400。

    注:RHEL6开始relatime,atime延迟修改,必须满足其中一个条件:
    1. 自上次atime修改后,已达到86400秒;
    2. 发生写操作时;

    ====================================================================================

    例2:async,sync
    [root@CentOS7 ~]# mount /dev/vg01/lv01 /mnt/lv01
    [root@CentOS7 ~]# mount -o sync /dev/vg01/lv02 /mnt/lv02
    [root@CentOS7 ~]# mount
    /dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw)
    /dev/mapper/vg01-lv02 on /mnt/lv02 type ext4 (rw,sync)
    [root@CentOS7 ~]# time cp -rf /etc /mnt/lv01
    [root@CentOS7 ~]# time cp -rf /etc /mnt/lv02

    例3:acl
    [root@CentOS7 ~]# vim /etc/fstab
    /dev/mapper/vg01-lv01 /mnt/lv01 ext4 defaults,acl 0 0
    [root@CentOS7 ~]# mount -o remount /mnt/lv01
    [root@CentOS7 ~]# mount
    /dev/mapper/vg01-lv01 on /mnt/lv01 type ext4 (rw,acl)


    挂载时可以使用(针对基本分区)
    设备名 /dev/sda3
    卷标 LABEL=yang
    UUID UUID="353a34b8-9233-465c-b7cf-92c8d308c05b"
    UDEV 可以给设备建立一个别名

    例4:使用卷标挂载
    [root@localhost ~]# tune2fs -l /dev/vda1 |less
    Filesystem volume name: <none>

    [root@CentOS7 ~]# tune2fs -L yang /dev/sda3 //设置卷标LABEL
    tune2fs 1.39 (29-May-2006)
    [root@CentOS7 ~]# vim /etc/fstab
    LABEL=yang /mnt/disk1 ext4 defaults 0 0

    例5:使用UUID挂载
    [root@CentOS7 ~]# blkid /dev/sda5
    /dev/sda5: UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" SEC_TYPE="ext2" TYPE="ext3"
    [root@CentOS7 ~]# vim /etc/fstab
    UUID="353a34b8-9233-465c-b7cf-92c8d308c05b" /mnt/disk1 ext4 defaults 0 0

    挂载ISO文件
    1. 将光盘制作成iso
    [root@CentOS7 ~]# dd if=/dev/cdrom of=/rhel6.iso
    [root@CentOS7 ~]# dd </dev/cdrom >/rhel6.iso

    2. 将文件制作成iso,例如将/etc制作成etc.iso
    [root@CentOS7 ~]# genisoimage -o /tmp/etc.iso -r /etc
    [root@CentOS7 ~]# file /tmp/etc.iso
    /var/etc.iso: ISO 9660 CD-ROM filesystem data 'CDROM '

    3. 使用iso,挂载
    [root@CentOS7 ~]# mount -t iso9660 -o loop /tmp/etc.iso /mnt/iso/

    EXT3/4文件系统

    Ext3: 文件系统最大16TB,单个文件最大2TB
    Ext4: 文件系统最大16TB,单个文件最大16TB

    Ext3/Ext4文件系统基本结构:

    inode table: 存储文件的元数据(文件权限,时间戳,指向block的指针等信息)
    data block: 存储文件的实际数据

    查看superblock(文件系统的信息)
    dumpe2fs
    [root@CentOS7 ~]# dumpe2fs /dev/sda2 |less
    tune2fs
    [root@CentOS7 ~]# tune2fs -l /dev/sda3
    tune2fs 1.39 (29-May-2006)
    Filesystem volume name: yang
    Last mounted on: <not available>
    Filesystem UUID: 28459f88-87dc-4624-94a7-07b0f3eb2420
    Filesystem magic number: 0xEF53
    Filesystem revision #: 1 (dynamic)
    Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
    Default mount options: (none)
    Filesystem state: clean
    Errors behavior: Continue
    Filesystem OS type: Linux
    Inode count: 48960
    Block count: 195312
    Reserved block count: 9765
    Free blocks: 183410
    Free inodes: 48946
    First block: 1
    Block size: 1024
    First inode: 11
    Inode size: 128
    Journal inode: 8

    更改文件系统的信息
    [root@CentOS7 ~]# tune2fs -L yyy /dev/sda5
    [root@CentOS7 ~]# tune2fs -o acl /dev/sda5
    [root@CentOS7 ~]# tune2fs -o ^acl /dev/sda5

    修复文件系统(修复超块)fsck,e2fsck

     

  • 相关阅读:
    API接口安全设计方案(已实现)
    第8篇-dispatch_next()函数分派字节码
    第7篇-为Java方法创建栈帧
    第6篇-Java方法新栈帧的创建
    第5篇-调用Java方法后弹出栈帧及处理返回结果
    第4篇-JVM终于开始调用Java主类的main()方法啦
    第3篇-CallStub新栈帧的创建
    第2篇-JVM虚拟机这样来调用Java主类的main()方法
    第1篇-关于JVM运行时,开篇说的简单些
    SpringCloud和SpringCloudAlibaba超详细总结
  • 原文地址:https://www.cnblogs.com/thelovelybugfly/p/12054850.html
Copyright © 2020-2023  润新知