磁盘管理方向知识宝典

Posted

tags:

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

磁盘分区、检查、格式化、挂载、卸载


fdisk /dev/sdb 修改分区表

m:进入功能菜单

n:添加一个分区{p:主分区;e:扩展分区}

p:显示分区表

w:保存分区设置并退出

使用fdisk修改分区表信息后,要使用{partprobe /dev/磁盘名}通知内核分区表的修改变化,再格式化{mkfs -t ext4 -b xxx -i xxx /dev/磁盘名},最后再挂载{mount /dev/磁盘名 /mnt}

mkfs -t ext4 -b xxx -i xxx /dev/磁盘名:-t 指定文件系统类型,-b 指定block大小,-i 指定inode大小


parted是一个磁盘分区管理工具,它比fdisk更加灵活且功能更丰富,同时支持GUID分区表

parted的操作是实时的,不像fdisk还需要w执行写入

parted /dev/sdb 设置分区表信息
mklabel gpt 设置分区格式为gpt
mkpart primary 0 10 添加主分区10M大小,Ignore[忽略]
mkpart primary linux-swap 11 21 添加swap类型的主分区
mkpart logical ext4 22 32 添加逻辑分区

p:显示分区表


使用物理分区构建swap

fdisk /dev/sdb 【分成一个区/dev/sdb1】

mkswap /dev/sdb1 格式化分区
free
swapon /dev/sdb1 使用swap分区
free
swapoff /dev/sdb1 停用swap分区

swap在工作中,特别是java环境,程序写的有问题,会发生内存泄露,可能会被占用。

解决办法:开发修改程序,运维临时加大swap。


dumpe2fs /dev/sdb1    显示文件系统的超级块和块组信息。

如无法查看,可能是因为文件系统不是ext4,使用blkid /dev/sdb1 查看文件系统类型

文件系统有哪些{Btrfs、JFS、ext、ext2ext3ext4、ISO9660、Minx、MSDOS、xfs、zfs、Reiserfs、FAT、NTFS、UMSDOS、VFAT、HPFS、SMB、SysV、PROC}


ipmitools 查看硬件信息工具


总结:


①、给磁盘分区的实质就是针对0磁头0磁道1扇区的前446字节后面接下来的64字节的分区表进行设置,主要是划分起始以及结束磁头号、扇区号、柱面号;

②、给磁盘分区的工具有fdisk(硬盘大小小于2T时使用)和parted(硬盘大小大或小于2T都可以使用)普选fdisk,大于2t选parted;

③、一块磁盘的分区表只有64字节,每个分区表要占16字节,所以一块磁盘仅支持4个分区表,即主分区+扩展区的总量不超过4个;

④、磁盘分区是按照柱面来划分的;

⑤、扩展分区不能直接使用,还需要在扩展分区上创建逻辑分区:

⑥、扩展分区有自己的分区表,因此,扩展分区下面的逻辑分区可以有多个。



1)磁盘分区:disk

fdisk /dev/sda
parted /dev/sda ——>支持大于2T的硬盘分区


2)磁盘格式化: mkfs -t ext3 /dev/sdb1


3)磁盘检查:fsck,badblocks

fsck -C -f -t ext4 /dev/sdb1  ——>没坏的磁盘一定不要用
badblocks -sv /dev/sdb1  ——>此命令可被fsck替代


4)磁盘的挂载与卸载:

    ①挂载ext2/ext3 文件系统

    mount /dev/sdb1 /mnt

        df -h

    ②挂载CD或DVD光盘

    mkdir /media/cdrom
    mount -t iso9660 /dev/cdrom /media/cdrom  ——> -t iso9660这是光盘的格式
        mount /dev/cdrom /mdeia/cdrom             ——> 系统自动挂载

    ③格式化与挂载软盘

        mkfs -t vfat /dev/sdb1
        mkdir /media/floppy
        mount -t fat /dev/sdb1 /media/floppy

        df

    ④挂载U盘

        mkdir /tmp/flash
        mount -t vfat -o iocharset=cp950 /dev/sdb1 /tmp/flash

    ⑤文件卸载

        umount /dev/sdb1

    ⑥开机挂载/dev/fstab和/etc/mtab

        将/dev/sdb1每次开机都自动挂载到/tmp/sdb1

        编辑/dev/fstab

        写入:/dev/sdb1 /tmp/sdb1 ext3 defaults 0 0


服务器多磁盘的结构体系

技术分享图片




从冗余、性能、成本这三个方面来比较RAID各模式的差异



服务器一般都会安装RAID卡(独立RAID卡需要购买的),RAID卡自带缓存。


冗余从好到坏:raid1、raid10、raid5、raid0


性能从好到坏:raid0、raid10、raid5、raid1


成本从高到低:radi0、raid5、raid1、raid10


根据数据的存储和访问需求来选择最好的RAID技术分享图片


举例:

1、单台服务器,很重要,盘不多,系统盘raid1;


2、数据库/存储服务器,主库raid10,从库raid5/raid0(为了维护成本:raid10)


3、web服务器,如果没有太多数据,raid5/raid0(单盘)


4、有多台服务器,比如监控/应用服务器,选择raid0/raid5


RAID 0:

在 RAID 0(条带化)中数据将使用切片的方式被写入到磁盘。一半的内容放在一个磁盘上,另一半内容将被写入到另一个磁盘。

在这种情况下,如果驱动器中的任何一个发生故障,我们就会丢失数据,因为一个盘中只有一半的数据,不能用于重建 RAID。不过,当比较写入速度和性能时,RAID 0 是非常好的。创建 RAID 0(条带化)至少需要2个磁盘。如果你的数据是非常宝贵的,那么不要使用此 RAID 级别。

总结:

  • 高性能。

  • RAID 0 中容量零损失。

  • 零容错。

  • 写和读有很高的性能。

RAID 1:

当我们保存数据时,它将同时写入这两个2TB驱动器中。创建 RAID 1(镜像化)最少需要两个驱动器。如果发生磁盘故障,我们可以通过更换一个新的磁盘恢复 RAID 。如果在 RAID 1 中任何一个磁盘发生故障,我们可以从另一个磁盘中获取相同的数据,因为另外的磁盘中也有相同的数据。所以是零数据丢失。

总结:

  • 良好的性能。

  • 总容量丢失一半可用空间。

  • 完全容错。

  • 重建会更快。

  • 写性能变慢。

  • 读性能变好。

  • 能用于操作系统和小规模的数据库。

RAID 5:

假设我们有4个驱动器,如果一个驱动器发生故障而后我们更换发生故障的驱动器后,我们可以从奇偶校验中重建数据到更换的驱动器上。奇偶校验信息存储在所有的4个驱动器上,如果我们有4个 1TB 的驱动器。奇偶校验信息将被存储在每个驱动器的256G中,而其它768GB是用户自己使用的。单个驱动器故障后,RAID 5 依旧正常工作,如果驱动器损坏个数超过1个会导致数据的丢失。

总结:

  • 性能卓越

  • 读速度将非常好。

  • 写速度处于平均水准,如果我们不使用硬件 RAID 控制器,写速度缓慢。

  • 从所有驱动器的奇偶校验信息中重建。

  • 完全容错。

  • 1个磁盘空间将用于奇偶校验。

  • 可以被用在文件服务器,Web服务器,非常重要的备份中。

RAID 6:

RAID 6 和 RAID 5 相似但它有两个分布式奇偶校验。大多用在大数量的阵列中。我们最少需要4个驱动器,即使有2个驱动器发生故障,我们依然可以更换新的驱动器后重建数据。

它比 RAID 5 慢,因为它将数据同时写到4个驱动器上。当我们使用硬件 RAID 控制器时速度就处于平均水准。如果我们有6个的1TB驱动器,4个驱动器将用于数据保存,2个驱动器将用于校验。

总结:

  • 性能不佳。

  • 读的性能很好。

  • 如果我们不使用硬件 RAID 控制器写的性能会很差。

  • 从两个奇偶校验驱动器上重建。

  • 完全容错。

  • 2个磁盘空间将用于奇偶校验。

  • 可用于大型阵列。

  • 用于备份和视频流中,用于大规模。

RAID 10:

RAID 10 可以被称为1 + 0或0 +1。它将做镜像+条带两个工作。在 RAID 10 中首先做镜像然后做条带。在 RAID 01 上首先做条带,然后做镜像。RAID 10 比 01 好。

总结:

  • 良好的读写性能。

  • 总容量丢失一半的可用空间。

  • 容错。

  • 从副本数据中快速重建。

  • 由于其高性能和高可用性,常被用于数据库的存储中。













以上是关于磁盘管理方向知识宝典的主要内容,如果未能解决你的问题,请参考以下文章

前端面试宝典:vue核心知识篇

全栈性能测试修炼宝典--Jmeter实战

Java开发从零开始!高级java工程师面试宝典

Java开发从零开始!高级java工程师面试宝典

扫描算法(SCAN)——磁盘调度管理

如何在屏幕方向更改时附加片段?