Linux基础之磁盘管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础之磁盘管理相关的知识,希望对你有一定的参考价值。

                                       Linux基础之磁盘管理

        关于Linux中磁盘管理我们应该从以下四个方面入手,去了解和学习磁盘管理的知识

第一点 磁盘的结构--硬盘

        硬盘的参数

结构:磁盘的盘片,磁头,马达(机械键盘

类型:固态硬盘(SSB)和机械硬盘

接口:早期的IDE接口,现在的SATA,SCSI,SAS

还有容量,转速,传输速度,缓存等。


硬盘存储术语

head: 磁头

track: 磁道

cylinder: 柱面

secotr: 扇区  512bytes(字节)


第二点 磁盘的分区 格式化

首先要明白为什么要分区?

1 优化I/O性能

2 实现磁盘空间配额

3 提高修复速度

4 隔离系统和程序 

5 安装多个OS

6 采用不同文件系统 


接下来就是分区

分区有俩种方式:MBR  , GPT

MBR:早期的分区标准,诞生于1982年,支持分区最大2T,支持主分区最多4个。通常储存在硬盘0磁道0扇区512bytes大小的空间 

GPT: 最新的分区标准,支持最高128个主分区,支持最大8z的硬盘大小


磁盘分区工具

fdisk: 支持MBR分区标准

gdisk:支持GPT分区标准 

parted:俩个分区标准都支持 通过命令直接分区 慎用

parted 高级分区操作(创建、复制、调整大小等等)

partprobe 重新设置内存中的内核分区表版本

parted

parted /dev/sdb mklabel gpt

改变分区为gpt 直接干掉磁盘数据

parted /dev/sdb mkpart primary 1 1000

在磁盘上分大小 实时生效




-fdisk

fdisk /dev/device

交互指令

    n 创建新的分区

    d 删除分区

    p 显示当前分区表

    t  更改分区类型

    l  列出所有支持分区的类型 

    q 不保存退出

    wq 保存退出 


通过命令行直接创建分区

echo -e "n\np\n1\n\n+2G\nw\n |fdisk /dev/sdx 头脑要清醒一步一步的、


-gdisk

gdisk /dev/device

交互指令和fdisk没啥太大区别

会fdisk就会gdisk


-parted

parted /dev/device 交互式创建分区 

parted [options] /dev/device [cmd] options...   直接通过命令行创建分区

parted /dev/sdb mkpart primary 1 1G     创建一块1G大小的分区,1 和 1G 分别代表起始点

格式化工具

  mkfs.[type] 通用格式化工具

  mke2fs   ext系列格式化工具 

  mkawap 格式化交换分区


Linux中常见的文件系统

 ext2  ext3  ext4  xfs  btrfs  swap   iso9660  nfs  ......

mkfs

-t  指定文件系统类型,mkfs -t  type  等价于  mkfs.type
    -L  指定卷标
        mkfs.xfs /dev/sdb1  将分区格式化成xfs分区

mke2fs

 用法:mke2fs  [options] /dev/device
     options:
    -t  指定文件系统类型 ext2/ext3/ext4
    -b  指定块大小 1024/2048/4096
    -L  指定卷标  -L ‘LABEL‘
    -m  管理员预留空间  -m  5 :预留5%
    -O  启用或关闭功能模块 如:-O ^has_journal 关闭日志功能
    -N  创建多少个inode号
    -i  指定多少个直接对应一个inode号
      示例:mke2fs  -t ext4 -b 2048 -L ‘FIRST‘ -m 5 -O ^has_journal -i 2048 /dev/sdb1
       tune2fs  -l  /dev/sdb1       查看文件系统是否创建成功


三 磁盘配额

磁盘配额作用对象是目录,并且该目录必须挂载到一个单独的分区。其主要作用是限制用户创建文件大小及文件数量。
      创建流程:
    ①、对目录重新挂载,使其启用配额功能模块
          方法1:mount -o remount,usrquota,grpquota /home    ##前提:/home必须单独挂载到一个分区
          方法2:修改/etc/fstab,功能选项定义为defaults,usrquota,grpquota,然后使用remount重新挂载
    ②、关闭selinux
          setenforce 0  不关闭selinux,以下创建过程会报错
    ③、初始化数据库
          quotacheck        ##执行该命令,可以在/home目录下创建quota.user及quota.group两个数据库
    ④、开启配额功能
          quotaon /home
    ⑤、编辑配额
          edquota username  调整文件限制大小及数量
    ⑥、测试
          su - username 切换到该用户进行配额测试

软raid就不介绍了 生产中大都是硬raid


四 逻辑卷管理器

 创建逻辑卷流程    ##sdb sdc是两块新增的硬盘
    ①、创建物理卷pv   (physical volume)
          pvcreate /dev/sd{b,c} ##可使用pvdisplay查看是否创建成功
    ②、创建卷组vg      (volume group)    
          vgcreate -s 16M vg_test /dev/sd{b,c}   ##创建卷组,并将pv加入卷组,-s 指定PE大小
          ##PE:创建lv的基本单元,pe数值不应太小,否则,磁盘上可能产生碎片,影响磁盘性能。
    ③、创建逻辑卷lv      (logical volume)
          lvcreate -L 2G -n lv_test vg_test ##创建一块2G大小的逻辑卷
        ④、创建文件系统
          mkfs.xfs /dev/vg_test/lv_test     ##创建xfs文件系统
    ⑤、挂载
          mount /dev/vg_test/lv_test /mnt/lv_test
     扩展逻辑卷
    lvextend -r -L +3G lv_test      ##将空间和文件系统一起扩展
     缩减逻辑卷
    ①、取消挂载
          umount /mnt/lv_test
    ②、检查文件系统
         e2fsck -f /dev/vg_test/lv_test
    ③、缩减文件系统
         resize2fs|xfs_grows lv_test 5G     ##resize2fs针对ext系列文件系统缩减,xfs_grows针对xfs文件系统缩减
    ④、缩减空间
         lvreduce -L 5G /dev/vg_test/lvtest ##注意,文件系统和空间缩减大小必须一致
     移除磁盘/dev/sdb流程
    ①、将/dev/sdb数据转移
          pvmove /dev/sdb
    ②、数据转移完成后,将/dev/sdb从磁盘移除
          vgreduce /dev/sdb
    ③、删除pv
          pvremove /dev/sdb
     创建快照
    lvcreate snap_test -L 1G -s -p r /dev/vg_test/lv_test
    -L  指定快照大小
    -s  指定该逻辑卷为快照
    -p r    配置该快照为只读

建议LVM和RAID阵列磁盘配合使用!














以上是关于Linux基础之磁盘管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础管理——磁盘管理

Linux磁盘分区及文件系统管理之基础概念

linux 磁盘管理之fdisk分区操作

Linux运维基础-磁盘管理

存储管理之硬件基础机械磁盘原理以及设备规范MBR格式的分区管理

Linux之LVM