第五周知识总结

磁盘管理和文件系统笔记

一.磁盘管理三步走:

1.分区:

1)分区方式:两种分区方式:MBRGPT

MBR方式:使用32位表示扇区数,分区不能超过2T BIOS自检程序只能识别MBR

0磁道0扇区:512字节

446bytes: boot loader

64bytes:分区表,其中每16bytes标识一个分区 (分区表很重要需要备份到其他服务器上)

2bytes: 55AA

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

MBR分区:主和扩展分区对应的1--4/dev/sda3,逻辑分区从5开始,/dev/sda5

 

GPT方式:支持128个分区,使用64位,支持8Z   BIOS自检程序不能识别GPT

需要UEFI接口 引入了GPT分区表,支持2T以上的硬盘,硬盘分区不受限

  1. 管理分区:

    parted 命令即时生效需要小心使用 一般不用

    parted /dev/sdb mklabel gpt|msdos

    parted /dev/sdb print

    parted /dev/sdb mkpart primary 1 200 (默认M

    parted /dev/sdb rm 1

    parted –l   列出所有硬盘分区信息

     

    分区工具fdiskgdisk

    gdisk [device...]             fdisk GPT分区工具

    fdisk -l [-u] [device...]     查看分区

    fdisk [device...]             管理MBR

    子命令:

    p 分区列表

    t 更改分区类型

    n 创建新分区

    d 删除分区

    v 校验分区

    u 转换单位

    w 保存并退出

    q 不保存并退出

     

    Centos6跟centos其他系列有差别:

    Centos6 通知内核重新读取硬盘分区表

    新增分区用

    partx -a /dev/DEVICE

    kpartx -a /dev/DEVICE -f: force

    #示例:

    [root@centos6 ~]#partx -a /dev/sda

    删除分区用

    partx -d --nr M-N /dev/DEVICE

    #示例:

    [root@centos6 ~]#partx -d --nr 6-8 /dev/sda

     

     

  1. 格式化 创建文件系统

  1. 常用文件系统:

    Linux常用系统:ext2. ext3. ext4. xfs swap .iso光盘 btrfs

    Windows 常用文件系统 FAT32  NTFS  exFAT

    常用的文件系统特性:

    FAT32

    最多只能支持16TB的文件系统和4GB的文件

    NTFS

    最多只能支持16EB的文件系统和16EB的文件

    EXT3

    最多只能支持32TB的文件系统和2TB的文件,实际只能容纳2TB的文件系统和16GB的文件

    Ext3目前只支持32000个子目录

    Ext3文件系统使用32位空间记录块数量和 inode数量

    当数据写入到Ext3文件系统中时,Ext3的数据块分配器每次只能分配一个4KB的块

    EXT4

    EXT4Linux系统下的日志文件系统,是EXT3文件系统的后继版本

    Ext4的文件系统容量达到1EB,而支持单个文件则达到16TB

    理论上支持无限数量的子目录

    Ext4文件系统使用64位空间记录块数量和 inode数量

    Ext4的多块分配器支持一次调用分配多个数据块

    修复速度更快

    XFS

    根据所记录的日志在很短的时间内迅速恢复磁盘文件内容

    用优化算法,日志记录对整体文件操作影响非常小

    是一个全64-bit的文件系统,最大可以支持8EB的文件系统,而支持单个文件则达到8EB

    能以接近裸设备I/O的性能存储数据

    2) 文件系统的组成部分

    内核中的模块:ext4, xfs, vfat

    Linux的虚拟文件系统:VFS

    用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

    创建文件管理工具

    mkfs命令:

    (1) mkfs.FS_TYPE /dev/DEVICE

    ext4  xfs  btrfs  vfat

    (2) mkfs -t FS_TYPE /dev/DEVICE

    -L 'LABEL' 设定卷标

    mke2fsext系列文件系统专用管理工具

    -t {ext2|ext3|ext4|xfs} 指定文件系统类型

    -b {1024|2048|4096} 指定块 block 大小

    -L ‘LABEL’ 设置卷标

    -j 相当于 -t ext3 mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

    -i   # 为数据空间中每多少个字节创建一个inode;不应该小于block大小

    -N # 指定分区中创建多少个inode

    -I 一个inode记录占用的磁盘空间大小,128---4096

    -m # 默认5%,为管理人员预留空间占总空间的百分比

    -O FEATURE[,...] 启用指定特性

    -O ^FEATURE 关闭指定特性

    查看和管理分区信息

    blkid 可以查看块设备属性信息

    格式:

    常用选项:

    -U UUID 根据指定的UUID来查找对应的设备

    -L LABEL 根据指定的LABEL来查找对应的设备

    e2label:管理ext系列文件系统的LABEL

    findfs :查找分区

    tune2fs:重新设定ext系列文件系统可调整参数的值

    dumpe2fs:显示ext文件系统信息,将磁盘块分组管理

    -h:查看超级块信息,不显示分组信息

    xfs_info:显示示挂载或已挂载的 xfs 文件系统信息

    xfs_info mountpoint|devname

     

    文件系统检测和修复

    文件系统夹故障常发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”

    注意:一定不要在挂载状态下执行下面命令修复

    fsck: File System Check

    注意:FS_TYPE 一定要与分区上已经文件类型相同

    e2fsckext系列文件专用的检测修复工具

    -y 自动回答为yes

    -f 强制修复

    -p 自动进行安全的修复文件系统问题

     

    xfs_repairxfs文件系统专用检测修复工具

    常用选项:

    -f 修复文件,而设备

    -n 只检查

    -d 允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot

     

  1. 挂载

    1)挂载格式:mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint

    device:指明要挂载的设备

    设备文件:例如:/dev/sda5

    卷标:-L 'LABEL', 例如 -L 'MYDATA'

    UUID -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'

    伪文件系统名称:proc, sysfs, devtmpfs, confifigfs

    mountpoint挂载点目录必须事先存在,建议使用空目录

    2)挂载规则:

    一个挂载点同一时间只能挂载一个设备

    一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏

    一个设备可以同时挂载到多个挂载点

    通常挂载点一般是已存在空的目录

    3)卸载文件系统 umount

     umount 设备名|挂载点

    卸载时:可使用设备,也可以使用挂载点

    查看挂载#通过查看/etc/mtab文件显示当前已挂载的所有设备

    mount

    #查看内核追踪到的已挂载的所有设备

    cat /proc/mounts

    查看挂载点情况:findmnt   MOUNT_POINT|device

    查看正在访问指定文件系统的进程

    lsof MOUNT_POINT

    fuser -v MOUNT_POINT

    终止所有在正访问指定的文件系统的进程

    fuser -km MOUNT_POINT

    4)持久挂载(需要将挂载点写入配置文件内)将挂载保存到 /etc/fstab 中可以下次开机时,自动启用挂载

    /etc/fstab格式帮助:

    man 5 fstab 每行定义一个要挂载的文件系统,,其中包括共 6

    要挂载的设备或伪文件系统

    设备文件

    LABELLABEL=""

    UUIDUUID=""

    伪文件系统名称:proc, sysfs

    挂载点:必须是事先存在的目录

    文件系统类型:ext4xfsiso9660nfsnone

    挂载选项:defaults aclbind

    转储频率:0:不做备份 1:每天转储 2:每隔一天转储

    fsck检查的文件系统的顺序:允许的数字是0 1 2

    0:不自检 1:首先自检;一般只有rootfs才用 2:非rootfs使用

    添加新的挂载项,需要执行下面命令生效

    mount -a

  1. 磁盘常用工具

    文件系统空间占用等信息的查看工具df

    常用选项-H 10为单位

    -T 文件系统类型

    -h human-readable

    -i inodes instead of blocks

    -P Posix兼容的格式输出

    查看某目录总体空间占用状态du

    常用选项

    -h human-readable

    -s   summary   

    --max-depth=#   指定最大目录层级

    工具dd

    格式dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#

    常用选项

    if=file 从所命名文件读取而不是从标准输入

    of=file 写到所命名的文件而不是到标准输出

    ibs=size   一次读sizebyte

    obs=size       一次写sizebyte

    bs=size block size, 指定块大小(既是是ibs也是obs)

    cbs=size       一次转化sizebyte

    skip=blocks   从开头忽略blocksibs大小的块

    seek=blocks 从开头忽略blocksobs大小的块

    count=n       复制nbs

    conv=conversion[,conversion...] 用指定的参数转换文件

    conversion 转换参数:

    ascii 转换 EBCDIC  ASCII

    ebcdic 转换 ASCII  EBCDIC

    lcase 把大写字符转换为小写字符

    ucase 把小写字符转换为大写字符

    nocreat 不创建输出文件

    noerror 出错时不停止

    notrunc 不截短输出文件

    sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐

    fdatasync 写完成前,物理写入输出文件

    常用RAID :RAID-0RAID-1RAID-5  RAID-6 RAID-10  RAID-01 RAOD-50

    mdadm工具:为软RAID提供管理界面,为空余磁盘添加冗余,结合内核中的md(multi devices)

    RAID设备可命名为/dev/md0/dev/md1/dev/md2/dev/md3

    mdadm:模式化的工具,支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

    命令的语法格式:

    创建:-C

    装配:-A

    监控:-F

    管理:-f, -r, -a

    <raiddevice>: /dev/md#

    <component-devices>: 任意块设备

    -C: 创建模式

    -n #: 使用#个块设备来创建此RAID

    -l #:指明要创建的RAID的级别

    -a {yes|no}:自动创建目标RAID设备的设备文件

    -c CHUNK_SIZE: 指明块大小,单位k

    -x #: 指明空闲盘的个数

    -D:显示raid的详细信息

    mdadm -D /dev/md#

    管理模式:

    -f: 标记指定磁盘为损坏

    -a: 添加磁盘

    -r: 移除磁盘

    观察md的状态: cat /proc/mdstat

     

  1. 逻辑卷

    逻辑卷介绍:LVM: Logical Volume Manager 可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,

    允许在多个物理设备间重新组织文件系统

    通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备

    中的PE加到LV中以加大容量

    第一个逻辑卷对应设备名:/dev/dm-#

    dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块

    软链接:

    /dev/mapper/VG_NAME-LV_NAME

    /dev/VG_NAME/LV_NAME

     

    pv管理工具

    显示pv信息

    pvs:简要pv信息显示

    pvdisplay

    创建pv

    pvcreate /dev/DEVICE

    删除pv

    pvremove /dev/DEVICE

     

    显示卷组

    vgs

    vgdisplay

    创建卷组

    vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath

    [PhysicalDevicePath...]

    管理卷组

    vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

    vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]

    删除卷组

    先做pvmove

    再做vgremove

    lv管理工具

    lvs

    Lvdisplay

    创建逻辑卷

    lvcreate -L #[mMgGtT] -n NAME VolumeGroup

    范例

    lvcreate -l 60%VG -n mylv testvg

    lvcreate -l 100%FREE -n yourlv testvg

    删除逻辑卷

    lvremove /dev/VG_NAME/LV_NAME

    重设文件系统大小

    fsadm [options] resize device [new_size[BKMGTEP]]

    resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

    xfs_growfs /mountpoint

    范例:#创建物理卷

    pvcreate /dev/sda3

    #为卷组分配物理卷

    vgcreate vg0 /dev/sda3

    #从卷组创建逻辑卷

    lvcreate  -L 256M  -n data vg0

    #mkfs.xfs   /dev/vg0/data

    #挂载

    mount /dev/vg0/data /mnt/data#

posted @ 2020-04-20 00:15  肖豪  阅读(180)  评论(0编辑  收藏  举报