运维必备技能之磁盘管理

磁盘分区的三个工具

1、fdisk交互式工具

        fdisk /dev/sdb进入交互界面

        交互式界面的几个常用命令

        p:显示现有分区情况

        w:保存分区并退出

        q:不保存分区退出

        n:新建分区

            e:(extend)扩展分区,新建扩展分区

            p:(primary)主分区,每一块磁盘最多只能分四个分区(这个是主要是磁盘引导类型MBR的原因,如果磁盘的类型为GPT类型就可以分更多的主分区)

        t:修改分区的ID号

            L可以查看所有的ID信息

        l:查看磁盘支持的ID信息

2、gdisk的使用方法与fdisk的使用方法相同,但是gdisk主要运用在GPT上

3、parted分区

    parted /dev/sdb mklable {gpt|fsdos|mac|loop…} 更换磁盘的类型为gpt,fsdos,mac….

    parted mkpart part-type [fs-type] start end 创建分区

        parted mkpart primary ext4 1 100       创建一个分区

分区已经创建完成,下一步需要进行格式化了

    格式分工具mkfs,可以加上要格式化的文件系统,如mkfs.xfs,mkfs.btrfs……

    mke2fs专用ext系列文件系统格式化

        -b:磁盘块大小{1024|2048|4096}

        -j(journal):启用日志功能

        -O:启用的文件系统特性

        -t:指定文件系统类型

        -I:指定文件系统中的inode的大小

文件系统已经格式化进行下一步挂载

    挂载:mount

    卸载:umonnt

    mount:

        -a:挂载所有的在/etc/fstab文件已有的挂载标识

        -n:挂载过程中不检查/etc/mtab文件

        -r:只读挂载

        -w:读写挂载

        -L:按卷标挂载

        -U:按UUID挂载

        -t:指定设备文件系统类型,不指定会自动识别

        -o:设置选项

            remount:重新挂载文件系统

            ro:只读挂载

            rw:读写

            noatime:不更新access time

            defaultes:默认挂载,含有:rw, suid, dev, exec, auto, nouser, and async.

            exec:是挂载的文件系统中是否可以执行可执行文件

查看文件系统的查关相信

    tune2fs:可以查看卷标,挂载点,UUID,文件系统特性,挂载选项,Inode数量与大小,block大小与数量等信息

        -j:开启文件系统中的日志功能,文件系统将变为ext3

        -L:修改文件系统的卷标

        -m:修改保留块的数量,百分比值,默认为百分之五

        -o:修改文件系统的挂载选项,^acl为取消acl,如果相加上某一个选项直接去掉前面的^即可

        -O:修改文件系统的特性,用法同-o

        

文件系统的修复:

    e2fsck:检查与修复Linux文件系统

        -f:强制测试

        -y:所有需要回答的问题全部回答yes

磁盘管理之RAID

做一个软RAID10示例

1、新建五个磁盘(所有磁盘存储大小必须相同)并将分区标记编号修改为fd

    echo -e ‘n\np\n1\n\n+5G\nt\nfd\nw\n’ | fdisk /dev/sdc        

    echo -e ‘n\np\n1\n\n+5G\nt\nfd\nw\n’ | fdisk /dev/sdd

    echo -e ‘n\np\n1\n\n+5G\nt\nfd\nw\n’ | fdisk /dev/sde

    echo -e ‘n\np\n1\n\n+5G\nt\nfd\nw\n’ | fdisk /dev/sdf

    echo -e ‘n\np\n1\n\n+5G\nt\nfd\nw\n’ | fdisk /dev/sdg

2、新建RAID

    mdadm -C /dev/md0 -a yes -l 10 -n 4 -x 1 /dev/sd{c1,d1,e1,f1,g1}

    RAID阵列构建结束

3、格式化/dev/md0

    mke2fs -j /dev/md0

4、挂载/dev/md0到/mydata挂载点上

    mount /dev/md0 /mydata

构建完成,下面进行测试

在/mydata目录下存放点文件

1、损坏一块硬盘是个什么情况

    mdadm /dev/md0 -f /dev/sdf1    //损坏磁盘

    mdadm -D /dev/md0              //查看磁盘详细性况

    测试结果为,spare备用分区这为active,而损坏的磁盘变为failure,state运行状态为正常clean,resyncing

    数据完整

2、再损坏一块磁盘

     mdadm /dev/md0 -f /dev/sdc1

    测试结果为,failure盘又加了一块,state运行状态非正常clean, degraded,降级运行

    数据完整,未损坏

3、再损坏一块磁盘

    mdadm /dev/md0 -f /dev/sdd1

    报错了,这就尴尬了,这是什么原因呢?这是因为如果sdd1损坏的话整个阵列就不能用了,所以报警了,那换一块试试

     mdadm /dev/md0 -f /dev/sdg1

    测试结果为,failure盘又加了一块,state运行状态非正常clean, degraded,降级运行

    数据完整,未损坏

以上为磁盘损坏测试,完成

现在我想加两块磁盘到阵列中

    mdadm -G /dev/md0 -n 6 -a /dev/sd{h1,}

现在我想将那些坏的磁盘清理了呢

    mkadm /dev/md0 -r /dev/sd{f1,c1,g1}

我把那些坏的磁盘修好了,可以再用了,怎么加入呢

     mkadm /dev/md0 -a /dev/sd{f1,c1,g1}


磁盘管理之LVM

创建一个VLM示例

1、找两个分区大小不限做PV

    pvcreate /dev/sd{b1,c1}

    提示找不到说明刚才的RAID没有清干静,那就暴力点清,只要是md0相关的文件都删掉,然后重启,这么搞几个来回也可有希望清干静

2、将PV创建为VG

    vgcreate testvg -s 16m /dev/sdb1 /dev/sdc1

    -s:指定PE大小

3、在VG上创建LV

    lvcreate -n testlv -L 3G testvg

    -L是指定大小,而-l是指定多少个PE

4、格式化LV,挂载LV略过

测试LVM的在线增加与离线缩减不损坏数据的特性

在挂载目录上存放一些文件

在线增加数据

    lvextend -L 7G -r /dev/testvg/testlv 

    查看已经将空间大小扩展为7G

    数据完整,无损坏

离线缩减

    1、卸载已经挂载的testlv

    2、fsck -f /dev/testvg/testlv检查校验testlv

    3、resize2fs 3G /dev/testvg/testlv 

    4、lvreduce -L 3G /dev/testvg/testlv 

    查看已经将空间缩减至3G大小

    数据完整,无损坏

LVM的快照技术

    lvcreate -n snap_testlv -L 1G -s -p r /dev/testvg/testlv

    将testlv的数据删除进行测试snap_testlv中是否是原来的testlv中的数据

     

原创文章,作者:gaomei,如若转载,请注明出处:http://www.178linux.com/71085

评论列表(1条)

  • 马哥教育
    马哥教育 2017-03-20 09:22

    很好,理论与实践相结合了,能看出很用心