• 磁盘管理


    1,磁盘的基本概念

    1.磁盘
    绝大多数人对硬盘都不陌生,
    一块小小的硬盘里,就可以存储海量的照片音乐和电影,尤其是我们喜爱的各类**动作片。
    但如此小的空间,是如何储存那么多信息的呢?

    每个硬盘中心都是一摞高速运转的圆盘,在圆盘上附着的一圈金属颗粒,每个金属颗粒都有自己的磁化程度,用于储存0和1。

    当记录数据时,硬盘的磁头开始通电,形成强磁场,数据在磁场的作用下转变成电流,使颗粒磁化,从而将信息记录在圆盘上。

    由海量颗粒组成的信息,就是我们存在硬盘里的数据。

    2.磁盘的基本结构

    • 1.盘片

    硬盘一般有一个或多个盘片,每个盘片可以有两面,即第一个盘片的正面为0面,反面为1面然后依次类推。

    • 2.磁道

    每个盘片的盘面在出厂的时候被划分出了多个同心圆环,数据就存储在这样的同心圆环上面,我们将这样的圆环称为磁道(Track),每个盘面可以划分多个磁道。但肉业不可见。

    • 3.扇区

    在硬盘出厂时会对磁盘进行一次低格,其实就是再每个磁道划分为若干个弧段,每个弧段就是一个扇区 (Sector)。扇区是硬盘上存储的物理单位,现在每个扇区可存储512字节数据已经成了业界的约定。

    • 4.柱面

    柱面实际上就是我们抽象出来的一个逻辑概念,简单来说就是处于同一个垂直区域的磁道称为 柱面 ,即各盘面上面相同位置磁道的集合。这样数据如果存储到相同半径磁道上的同一扇区,这样可以实现并行读取,主要是减少磁头寻道时间。

    • 5.磁头

    读取磁盘磁道上面金属块,主要负责读或写入数据。



    3,磁盘接口类型

    IDE,Scsi(已经被淘汰)

    SATA III 与SAS(企业使用较多)

    SATA III 与SAS

    接口类型 接口速率 盘片转速 写入速度 应用场景
    SATA III (1T 300-400) 60Gbps/s 7.5k/s 300MB/s 个人
    SAS (300Gb 3000) 8Gbps/s~12Gbps/s 15k/s 300MB/s~600MB/s 企业
    • ssd的MSTATA接口为超极本设计,但是被m.2接口的SSD替代,而m.2接口(支持SATA、PCI-E双通道协议)
      MSATA-M2

    1、M.2接口是为超极本量身定做的新一代接口标准,以取代原来的mSATA接口。拥有更小巧的规格尺寸,还是更高的传输性能,M.2都远胜于mSATA。
    固态硬盘SATA和mSATA有什么区别
    2,m.2中的几个名词:SATA和PCI-E AHCI和NVMe

    磁盘的基本术语

    尺寸: 2.5英寸 3.5英寸
    容量:KB MB GB TB PB EB
    转速:7500 15000
    IOPS:每秒能够发生IO的次数

    • 磁盘在系统上的命名方式
    设备名称 分区信息 设备类型
    /dev/sda /dev/sda1 第一块物理磁盘第一分区
    /dev/sdb /dev/sdb2 第二块物理磁盘第二个分区
    /dev/vdd /dev/vdd4 第四块虚拟磁盘的第四个分区

    PS1:系统中分区由数字编号表示,1~4留给主分区使用和扩展分区,逻辑分区从5开始,为什么分区还有限制?不应该是随意分配?因为MBR分区表只能分配4个主分区?why?
    MBR为什么只能划分4个主分区

    PS2: 前面我们已经提到过MBR分区表只能分配4个主分区,但现在还有一种新型的分区表GPT,GPT支持分配128个主分区。注意MBR与GPT之间不能互转,会导致数据丢失。

    MBR与GPT之间又有什么区别

    磁盘基本分区Fdisk

    1.添加一块小于2TB的磁盘进行使用,步骤如下:
    1.给虚拟机添加一块新的硬盘
    2.使用fdisk进行分区
    3.使用mkfs进行格式化
    4.使用mount进行挂载
    PS: 生产分区建议,如无特殊需求直接使用整个磁盘即可,无需分区。
    PS: 学习分区建议: 1P+1E(3L) 2P+1E(2L) 3P+1E(1L) (仅适用于练习)

    [root@carol ~]# fdisk -l
    [root@carol ~]# fdisk  /dev/sdb
    Command (m for help): m         #输入m列出常用的命令
    Command action
       a   toggle a bootable flag               #切换分区启动标记
       b   edit bsd disklabel                   #编辑sdb磁盘标签
       c   toggle the dos compatibility flag    #切换dos兼容模式
       d   delete a partition                   #删除分区
       l   list known partition types           #显示分区类型
       m   print this menu                       #显示帮助菜单
       n   add a new partition                  #新建分区
       o   create a new empty DOS partition table   #创建新的空白分区表
       p   print the partition table            #显示分区表的信息
       q   quit without saving changes          #不保存退出
       s   create a new empty Sun disklabel     #创建新的Sun磁盘标签
       t   change a partitions system id       #修改分区ID,可以通过l查看id
       u   change display/entry units           #修改容量单位,磁柱或扇区
       v   verify the partition table           #检验分区表
       w   write table to disk and exit         #保存退出
       x   extra functionality (experts only)   #拓展功能
    

    1.fidisk创建主分区

    Command (m for help): n
    Partition type:
       p   primary (0 primary, 0 extended, 4 free)  #主分区
       e   extended  #扩展分区
    Select (default p): p   #选择创建主分区
    Partition number (1-4, default 1):  #默认创建第一个主分区
    First sector (2048-2097151, default 2048): #默认扇区回车
    Using default value 2048
    Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M #分配50MB
    

    2.fdisk创建扩展分区

    Command (m for help): n  #新建分区
    Partition type:
       p   primary (1 primary, 0 extended, 3 free)
       e   extended
    Select (default p): e   #创建扩展分区
    Partition number (2-4, default 2):
    First sector (104448-2097151, default 104448):
    Using default value 104448
    Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151): #空间都给到扩展分区
    

    3.fdisk创建逻辑分区

    Command (m for help): n  #新建分区
    Partition type:
       p   primary (1 primary, 1 extended, 2 free)
       l   logical (numbered from 5)
    Select (default p): l   #创建逻辑分区
    Adding logical partition 5
    First sector (106496-2097151, default 106496):
    Using default value 106496
    Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +100M  #分配100MB空间
    

    4.fdisk查看分区情况,并保存

    Command (m for help): p #查看分区创建
    Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048      104447       51200   83  Linux
    /dev/sdb2          104448     2097151      996352    5  Extended
    /dev/sdb5          106496      311295      102400   83  Linux
    
    #保存分区
    Command (m for help): w
    The partition table has been altered!
    Calling ioctl() to re-read partition table.
    Syncing disks.
    
    #检查磁盘是否是MBR分区方式
    [root@carol~]# fdisk /dev/sdb -l|grep type
    Disk label type: dos
    
    #安装parted, 刷新内核立即生效,无需重启
    [root@carol~]# yum -y install parted
    [root@carol~]# partprobe /dev/sdb
    
    • 2.格式化磁盘

    mkfs格式化磁盘,实质创建文件系统,文件系统类似于将房子装修成3室一厅,还是2室一厅。

    #选项: 
    # -b  设定数据区块占用空间大小,目前支持1024、2048、4096 bytes每个块。
    # -t  用来指定什么类型的文件系统,可以是ext4, xfs
    # -i  设定inode的大小
    # -N  设定inode数量,防止Inode数量不够导致磁盘不足
    
    #1.格式化整个磁盘
    [root@carol~]# mkfs.ext4  /dev/sdb 
    
    #2.格式化磁盘的某个分区
    [root@carol~]# mkfs.xfs  /dev/sdb1
    
    • 3.使用mount挂载并使用

    如果需要使用该磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联.

    [root@carol ~]# mkdir /data
    [root@carol~]# mount /dev/sdb1 /data
    

    磁盘的基本分区Gdisk

    fdisk不支持给高于2TB的磁盘进行分区。如果有单块盘高于2TB,建议使用Gdisk进行分区。

    • 1.使用gdisk进行磁盘分区
    #1.安装gdisk分区工具
    [root@carol ~]# yum install gdisk -y
    
    #2.创建一个新分区,500MB大小
    [root@carol ~]# gdisk /dev/sdb
    Command (? for help): n     #创建新分区
    Partition number (1-128, default 1):
    First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
    Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M #分配500M大小
    
    Command (? for help): p #打印查看
    Number  Start (sector)    End (sector)  Size       Code  Name
       1            2048         1026047   500.0 MiB   8300  Linux filesystem
    
    Command (? for help): w #保存分区
    Do you want to proceed? (Y/N): y    #确认
    OK; writing new GUID partition table (GPT) to /dev/sdb.
    The operation has completed successfully.
    
    #3.创建完成后,可以尝试检查磁盘是否为gpt格式
    [root@carol-node1 /]# fdisk /dev/sdb -l|grep type
    Disk label type: gpt
    
    #4.安装parted, 刷新内核立即生效,无需重启
    [root@carol ~]# yum -y install parted
    [root@carol ~]# partprobe /dev/sdb
    

    2.使用mkfs进行格式化磁盘。

    [root@carol ~]# mkfs.xfs  /dev/sdb
    

    3.使用mount命令将某个目录挂载该分区,进行使用。

    [root@carol ~]# mkdir /data_gdisk
    [root@carol ~]# mount /dev/sdb /data_gdisk
    

    磁盘挂载方式Mount

    • 如果需要使用磁盘的空间,需要准备一个空的目录作为挂载点,与该设备进行关联。mount主要是为文件系统指定一个访问入口。

    1,通过mount进行挂载,但重启将会失效。我们成为临时生效。

    # 选项:-t指定文件系统挂载分区 -a 挂载/etc/fstab中的配置文件 -o 指定挂载参数
    # 挂载/dev/sdb1至db1目录
    [root@carol~]# mkdir /db1
    [root@carol ~]# mount -t xfs /dev/sdb1  /db1/ 
    

    2.挂载的磁盘,如果不想使用可以使用umount进行卸载。

    
    #1.卸载目录方式
    [root@carol ~]# umount /db1
    
    #2.卸载设备方式
    [root@carol ~]# umount /dev/sdb1
    
    #3.umount不能卸载的情况
    [root@carol db1]# umount /db1  
    umount: /db1: device is busy.
            (In some cases useful info about processes that use
             the device is found by lsof(8) or fuser(1)
    
    #PS: 如上情况解决办法有两种, 1.切换至其他目录 2.使用'-l'选项强制卸载    
    [root@student db1]# umount -l /db1
    
    

    如果需要实现永久挂载时需要将挂载信息写入/etc/fstab配置文件中实现

    #1.使用blkid命令获取各设备的UUID
    [root@carol~]# blkid |grep "sdb1"
    /dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
    
    #2.使用UUID挂载磁盘sdb1分区至于db1, 测试挂载
    [root@carol ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1
    
    #3.写入/etc/fstab中,实现开机自动挂载
    [root@carol~]# tail -1 /etc/fstab    
    UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs  defaults 0  0
    
    #4.加载fstab配置文件, 同时检测语法是否有错误
    [root@carol~]# mount –a
    

    3/etc/fstab配置文件编写格式
    | 要挂载的设备 | 挂载点(入口) | 文件系统类型 | 挂载参数 | 是否备份 | 是否检查 |
    | --------- | ------- | ------ | -------- | ---- | ---- |
    | /dev/sdb1 | /db1 | xfs | defaults | 0 | 0 |

    第四列的挂载参数很多了,了解即可。

    参数 含义
    async/sync 是否为同步方式运行。默认async
    user/nouser 是否允许普通用户使用mount命令挂载。默认nouser
    exec/noexe 是否允许可执行文件执行。默认exec
    suid/nosuid 是否允许存在suid属性的文件。默认suid
    auto/noauto 执行mount -a 命令时,此文件系统是否被主动挂载。默认auto
    rw/ro 是否以只读或者读写模式进行挂载。默认rw
    default 具有rw,suid,dev,exec,auto,nouser,async等默认参数的设定

    第五列:是否进行备份。通常这个参数的值为0或者1

    选项 含义
    0 代表不做备份
    1 代表要每天进行备份操作
    2 代表不定日期的进行备份操作

    第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整

    选项 含义
    0 不要检验磁盘是否有坏道
    1 检验
    2 校验 (当1级别检验完成之后进行2级别检验)

    虚拟磁盘SWAP

    Swap分区在系统的物理内存不够时,将硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。
    PS: 当物理内存不够时会随机kill占用内存的进程,从而产生oom,临时使用swap可以解决

    1,创建分区,并格式化为swap分区

    
    [root@carol ~]# fdisk  /dev/sdb       #分1个G大小
    [root@carol ~]# mkswap /dev/sdb1      #格式化为swap
    

    2.查看当前swap分区大小,然后进行扩展和缩小

    
    [root@carol ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1980        1475          80          10         424         242
    Swap:          2047           4        2043
    
    #1.扩展swap分区大小
    [root@carol ~]# swapon /dev/sdb2
    [root@carol ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1980        1475          80          10         424         242
    Swap:          3047           4        2043
    [root@carol ~]# swapon -a #代表激活所有的swap
    
    #2.缩小swap分区大小
    [root@carol ~]# swapoff /dev/sdb1
    [root@carol ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1980        1475          80          10         424         242
    Swap:          2047           4        2043
    [root@carol ~]# swapoff -a #代表关闭所有的swap
    

    3.检查当前swap分区有哪些设备

    
    [root@carol ~]# swapon -s
    文件名             类型      大小   已用  权限
    /dev/dm-1   partition   2097148   4616    -2
    /dev/sdb1   partition   1048572   0       -2
    

    4.如果磁盘没有过多的分区可用,也可以通过文件增加SWAP空间,本质上还是磁盘

    [root@carol ~]# dd if=/dev/zero of=/opt/swap_file bs=1M count=500
    [root@carol ~]# chmod 0600 /opt/swap_file
    [root@carol ~]# mkswap -f /opt/swap_file 
    [root@carol ~]# swapon /opt/swap_file
    [root@carol ~]# free -m
    
    • PS: 如果希望swap开机自动挂载,将swap信息追加至/etc/fstab即可
  • 相关阅读:
    VS2013 添加 ILDasm
    XmlIgnore的使用
    前端常见跨域解决方案(全)
    网络请求中的cookie与set-Cookie的交互模式的一些问题解析
    各浏览器Cookie大小、个数限制
    Linux常用命令分类
    给博客园中博文的图片添加单击时弹出放大效果——lightbox
    给博客园中博文的图片添加单击时弹出放大效果—— zoom.js
    CSS3新单位vw、vh、vmin、vmax使用详解
    session,cookie,sessionStorage,localStorage的相关设置以及获取删除
  • 原文地址:https://www.cnblogs.com/qinghuani/p/15056323.html
Copyright © 2020-2023  润新知