运维必备技能之磁盘管理

磁盘分区的三个工具

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

(0)
gaomeigaomei
上一篇 2017-03-13 23:54
下一篇 2017-03-14 17:06

相关推荐

  • bash脚本编程实例

    bash脚本编程实例 1.写一个脚本 接受一个以上文件路径作为参数 显示每个文件拥有的行数 总结说明本次共为几个文件统计了其行数 #!/bin/bash # read -p “please input some paths:” paths if [ -z $paths ];then echo “There are not any paths inputtin…

    Linux干货 2017-08-14
  • 计算机的组成及其功能

    计算机由五大组成部分 运算器 运算器主要负责数据的算术运算或者逻辑运算 控制器 控制器负责调度系统指令 存储器 存储数据的地方,如硬盘和内存 输入设备和输出设备 主要用于人机交互,如键盘、鼠标,显示器

    2018-03-04
  • 批量部署lxc虚拟机

    前言:lxc是一种操作系统层虚拟化(Operating system–level virtualization)技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的命名空间和共用API来分配不同软件容器的可用硬件资源,创造出应用程…

    Linux干货 2016-03-20
  • Linux系统目录结构

    root 管理员家目录home 普通用户家目录bin 系统启动和运行可能会用到的普通命令sbin 管理类命令proc 虚拟文件系统,由内核参数映射而来usr 系统软件资源存放位置include 存放C/C++头文件的目录lib 库文件lib64 64位系统库文件tmp 临时文件目录boot 引导加载器所需文件,系统所需图片保存于此etc 配置文件sys 虚拟…

    Linux干货 2018-03-03
  • 简明 Vim 练级攻略

    vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。 ——————————正文开始—————————— …

    Linux干货 2015-04-04
  • 编译内核——制作最适合自己系统的内核

    编译内核: ·程序包的编译安装:         ./configure ,make ,make install ·前提:开发环境(开发工具、开发库),头文件:/usr/include ·开源:源代码–>可执行格式    &nbsp…

    Linux干货 2016-09-11

评论列表(1条)

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

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