千家信息网

Linux磁盘管理及软raid使用方法

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,一、磁盘的管理介绍硬盘的格式:硬盘分为两种格式MBR和GPTMBR:在硬盘的0磁道0扇区上,该扇区大小为512个字节,专门用来存储MBR引导信息。 MBR又分三部分:
千家信息网最后更新 2024年09月22日Linux磁盘管理及软raid使用方法

一、磁盘的管理介绍

  1. 硬盘的格式:

硬盘分为两种格式MBR和GPTMBR:在硬盘的0磁道0扇区上,该扇区大小为512个字节,专门用来存储MBR引导信息。        MBR又分三部分:                446个字节:存储boot loader,引导加载器                64个字节:存储分区表,有多少个分区,每个分区从哪里开始再到哪里结束;其中每16个字节表示一个分区,因此,在MBR格式的硬盘上最多只能有四个主分区                2个字节:前面信息的有效标识,结束标志。用四个16进制数表示为55aa,表示前510个字节是有效的,也就是说代表着分区是有效的,如果这两个值为空那么即使建立了分区也是不生效的。        因为只有64个字节存放分区信息,所以MBR格式的硬盘上最多可分四个主分区,也可以划分三个主分区+一个扩展分区,扩展分区又可以划分多个逻辑分区;        需要注意的是MBR最多支持2T的分区,超过2T的MBR识别不了,就需要GPT来实现GPT:兼容MBR,最多可创建128个主分区,因为主分区数量够多,不在需要扩展分区,同时GPT也打破了MBR的最多2T分区的概念

磁盘管理常用的工具
MBR管理工具:fdisk
GPT管理工具:gdisk
高级管理工具:parted

2.fdisk:创建磁盘分区管理工具,MBR格式文件系统管理工具,对GPT格式的磁盘兼容性不好

fdisk -l:查看分区信息fdisk /dev/device_name:管理磁盘的分区fdisk创建分区会开启一个交互式窗口,其中有很多子命令        m:查看可使用的命令有哪些        p:显示当前磁盘的分区信息        n:创建新分区                p:为主分区                e:为扩展分区        d:删除分区        w:保存分区信息并退出        q:不保存分区信息退出        t:修改分区的系统ID        l:列出系统上所有的系统ID        L:列出支持的所有分区类型或者是分区类型所代表的16进制的ID

3.gdisk:创建磁盘分区管理工具,GPT格式文件系统管理工具,和fdisk的操作基本相同

gdisk -l:查看分区信息gdisk /dev/device_namegdisk创建分区会开启一个交互式窗口,其中很很多命令        ?:显示支持的命令列表        p:显示当前磁盘的分区信息        n:创建新分区        d:删除分区        w:保存分区信息并退出        q:不保存分区信息退出        l:列出系统上所有的系统ID也就是所有的分区类型

4.parted:综合管理

用法:parted [选项]... [设备 [命令 [参数]...]...]        parted /dev/sdb mklabel gpt|msdos:指定分区的类型        parted /dev/sdb print:打印当前分区信息        parted /dev/sdb mkpart primary 1 200 (默认M):进行分区primary(主分区)extended(扩展分区),logical(逻辑分区)        parted /dev/sdb rm 1:删除分区,这个删除是根据分区号进行删除的        parted -l   列出分区信息

正常我们在系统开机的情况下直接添加的硬盘,系统是不会识别的,使用下面的命令让系统重读硬盘信息

echo '- - -' > /sys/class/scsi_host/host0/scan:触发硬件重新识别硬盘

对于刚创建好的分区来说,系统并不会识别,需要手动识别也就是我们需要同步分区表

同步分区表        查看内核是否已经识别新的分区                cat /proc/partations        centos6通知内核重新读取硬盘分区表                新增分区用                partx -a /dev/DEVICE:增加分区的选项,也就是对这个设备增加分区让增加的分区生效                kpartx -a /dev/DEVICE -f: force(强制)                删除分区用                partx -d --nr M-N(分区的序号) /dev/DEVICE:删除分区        CentOS 5,7: 使用partprobe:同步分区信息,将硬盘信息与内存中的分区信息                partprobe [/dev/DEVICE]:进行同步不加设备默认就是刷新所有设备的分区信息,添加设备只刷新指定设备的分区信息注意:现在使用的硬盘分区必须是硬盘中一块连续的空间

5.常见的文件系统分类

常用的Linux文件系统:                ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区                ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统                ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升(配合gpt使用)                xfs:SGI,支持最大8EB的文件系统                btrfs(Oracle), reiserfs, jfs(AIX), swap光盘:iso9660Windows:FAT32, exFAT,NTFSUnix: FFS(fast), UFS(unix), JFS2网络文件系统:NFS, CIFS集群文件系统:GFS2, OCFS2(oracle)分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre

6.创建文件系统的工具:

mkfs命令        第一种方式:直接使用以文件系统为后缀的命令mkfs.btrfs、mkfs.ext2、mkfs.ext4、mkfs.minix、mkfs.vfat、mkfs.cramfs、mkfs.ext3、mkfs.fat、mkfs.msdos、mkfs.xfs        第二种方式:-t:指定文件系统类型        -L:设定卷标,相当于注释对于交换文件系统swap,有特定的工具,但是要将磁盘的系统ID改为8emkswap  /dev/device_nameblkid:查看指定设备的属性信息        -U:根据UUID查找到对应的设备        -L:根据卷标查找到对应的设备tune2fs:调整文件系统的相关属性        -l:查看超级块中的信息        -L:设定或修改卷标        -m:调整预留百分比        -r:指定预留块数        -o:设定默认挂在选项        -c #:指定挂载次数达到#次后进行自检,0或-1为关闭此功能        -i #:每次挂载多少天之后进行自检,0或-1为关闭此功能dumpe2fs:显示文件系统属性信息        -h:只显示超级块中的信息文件系统的检测:fsck:检查并修复Linux文件系统,修复完成后文件会变得不完整        -t:指定文件系统类型        -a:自动修复        -r:交互式修复e2fsck:专用于修复ext 系列的文件系统        -y:对问题自定回复yes        -f:强制检查        -p:自动修复

7.超级块

作用是存储文件系统的大小,有多少是空的和已经填满的占多少,以及他们各自的总数和其他信息,要是用一个分区来访问数据,第一个就访问的是超级块,所以超级块如果坏了,那磁盘就基本没救了超级块占用第一号物理块,是文件系统的控制块。超级块是用存放元数据的,也就是从几到几是属于一个块的文件系统,比如大小,空闲块的数目,空闲块的索引表,空闲的iNode节点数目,空闲的iNode索引表等等。为了防止超级块损坏,就需要对超级块进行备份,以便损坏时可以修复。

8.文件系统的挂载和卸载

挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为卸载:为解除此关联关系的过程mount:挂载工具        格式:mount 设备 挂载点根文件系统默认给定了临时挂载点:/mnt、/opt、/media当然也可以挂载到别的目录,但是挂载目录必须事先存在,且最好为空目录,要不目录下文件将被隐藏;常用的mount挂在选项:        -t:指定文件系统类型        -r:只读挂载,目录下内容只可以读        -w:读写挂载,目录下内容可读可写,可修改        -L label:以卷标方式指定设备,mount -L label 挂载点,很少用        -U UUID:以UUID的方式指定设备,通常写在/etc/fstab文件中,常用        -a:自动挂载/etc/fstab文件中的所有设备,会自动扫描,没有挂载的就会挂载,已经挂载的忽略        -n:挂载时,不更新/etc/mtab文件        -B:绑定到一个目录上        -o option:mount的-o选项丰富多彩,定制很多可用的挂载选项;                remount:重新挂载,在不卸载的情况下添加额外挂载选项                        ro:只读挂载                        rw:读写挂载                async:异步I/O,数据写操作先在内存完成,然后在整体同步到磁盘上                sync:同步I/O,数据一边写一边存到磁盘上                atime/noatime:是否修改文件的访问时间,追求性格时可关闭,因为修改访问时间也会有写磁盘操作                dirname/nodirname:是否修改目录的访问时间                auto/noauto:设备是否支持自动挂载,mount -a选项                dev/nodev:是否支持在此设备上使用设备文件                exec/noexec:是否允许执行此设备上的二进制程序                suid/nosuid:是否支持次设备上的文件拥有特殊权限                user/nouser:是否支持普通用户挂在此设备                acl:在此设备上是否支持使用ACL,centos7默认支持,之前的版本默认不支持        挂载时可同时使用多选项,使用逗号隔开即可        mount不加选项默认的挂载选项:                rw,suid,dev,exec,auto,nouser,async交换分区的挂载:        swapon:启用swap分区                -a:使/etc/fstab中,所有标记了'sw'的交换设备生效                -s:显示系统上所有swap分区信息                -p #:可指定优先级        swapoff:禁用一个swap分区                -a:禁用所有        free:可查看内存和swap使用信息情况                -m:以MB为单位显示                -g:以GB为单位显示卸载命令        查看挂载情况                findmnt MOUNT_POINT|device:确认是否是挂载点        查看正在访问指定文件系统的进程                lsof MOUNT_POINT                fuser -v MOUNT_POINT        终止所有在正访问指定的文件系统的进程                fuser -km MOUNT_POINT:把使用此进程的所有目录全部关闭掉        卸载                umount DEVICE                umount MOUNT_POINT

9.文件系统空间查看工具:df,du

df:列出文件系统的整体磁盘使用量                -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;        -k :以 KBytes 的容量显示各文件系统;        -m :以 MBytes 的容量显示各文件系统;        -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;        -H :以 M=1000K 取代 M=1024K 的进位方式;        -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;        -i :不用硬盘容量,而以 inode 的数量来显示du:检查磁盘空间使用量        -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。        -h :以人们较易读的容量格式 (G/M) 显示;        -s :列出总量而已,而不列出每个各别的目录占用容量;        -S :不包括子目录下的总计,与 -s 有点差别。        -k :以 KBytes 列出容量显示;        -m :以 MBytes 列出容量显示;dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。        参数:                if=文件名:输入文件名,默认为标准输入。即指定源文件。                of=文件名:输出文件名,缺省为标准输出。即指定目的文件。                bs=bytes:同时设置读入/输出的块大小为bytes个字节。                count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。        常用就是以上四个                例:dd if=/dev/zero of=/root/file1 bs=1 count=1G,会生成一个1G大小的文件                        dd命令可以测试磁盘的IO速率,以上例子就可看出                                ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。                obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。                cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。                skip=blocks:从输入文件开头跳过blocks个块后再开始复制。                seek=blocks:从输出文件开头跳过blocks个块后再开始复制。                conv=conversion:用指定的参数转换文件。                        ascii:转换ebcdic为ascii                        ebcdic:转换ascii为ebcdic                        ibm:转换ascii为alternate ebcdic                        block:把每一行转换为长度为cbs,不足部分用空格填充                        unblock:使每一行的长度都为cbs,不足部分用空格填充                        lcase:把大写字符转换为小写字符                        ucase:把小写字符转换为大写字符                        swab:交换输入的每对字节                        noerror:出错时不停止                        notrunc:不截短输出文件                        sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补

10.实现开机自动挂载

以上是临时挂载,重启则失效,要开机自动挂载就需要写到文件中,其实Linux要想永久保存配置,就是写成文件方式/etc/fstab:文件内记录的条目对应不同的设备,系统启动后会读此文件,自动挂载文件中记录的设备文件的格式:每一行为一个设备的挂载信息。一行中的信息有:        /etc/fstab每行定义一个要挂载的文件系统        1、要挂载的设备或伪文件系统                设备文件                LABEL:LABEL=""                UUID:UUID=""                伪文件系统名称:proc, sysfs        2、挂载点        3、文件系统类型:ext4,xfs,nfs,none        4、挂载选项:defaults ,acl,bind        5、转储频率:0:不做备份 1:每天转储 2:每隔一天转储        6、fsck检查的文件系统的顺序:允许的数字是0, 1, 和2                0:不自检                1:首先自检;一般只有rootfs才用                2:非rootfs使用

二、软raid的介绍

1.什么是raid

RAID是"Redundant Array of Independent Disk"的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。

RAID磁盘阵列(Redundant Array of Independent Disks),其特色是N台硬盘同时读取速度加快及提供容错性Fault Tolerant,所以RAID主要是解决访问数据的存储速度问题(Storage)不是备份问题(Backup Solution)。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。根据磁盘陈列的不同组合方式,可以将RAID分为不同的级别。磁盘阵列中针对不同的应用使用的不同技术,称为RAID level,而每一level都代表着不同技术,目前业界公认的标准是RAID 0~RAID 5。

2.raid的特性:

  • 扩大了存储能力 可由多个硬盘组成容量巨大的存储空间。

  • 降低了单位容量的成本 市场上最大容量的硬盘每兆容量的价格要大大高于普及型硬盘,因此采用多个普及型硬盘组成的阵列其单位价格要低得多。

  • 提高了存储速度 单个硬盘速度的提高均受到各个时期的技术条件限制,要更进一步往往是很困难的,而使用RAID,则可以让多个硬盘同时分摊数据的读或写操作,因此整体速度有成倍地提高。

  • 可靠性 RAID系统可以使用两组硬盘同步完成镜像存储,这种安全措施对于网络服务器来说是最重要不过的了。

  • 容错性 RAID控制器的一个关键功能就是容错处理。容错阵列中如有单块硬盘出错,不会影响到整体的继续使用,高级RAID控制器还具有拯救数据功能。

  • 对于IDE RAID来说,目前还有一个功能就是支持ATA/66/100。

3.raid的实现方式:

  • 外接式磁盘阵列:通过扩展卡提供适配能力

  • 内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置

  • 软件RAID:通过OS实现

4.raid的级别

raid级别:               raid-0:分布式存储数据                读、写性能提升                无容错能力                最少磁盘数2,2+                磁盘利用率100%        raid-1:镜像式存储数据                读性能提升、写性能略有下降                有冗余能力                最少磁盘数2,2N                可用空间50%                raid-5:                读、写性能提升                有冗余能力,允许最多一块磁盘损坏                最少磁盘数3,3+                可用空间 :N-1                raid-6:                读、写性能提升                有容错能力,允许最多两块盘损坏                最少磁盘数4,4+                可用空间 :N-2                        raid-1 0 ===  raid-0 1  :先做1 在做0 或者 先做0 在做1                读、写性能提升                有容错能力。每组镜像最多只能坏一块                最少磁盘数4,4+                可用空间100%                raid-10用的多实现软件radio        mdadm工具:为软件raid提供管理                        -V:版本信息                        -v:创建时详细信息                        -q:静默模式                创建选项:-C                        -l:指定raid级别                        -n:设备的个数                        -a:yes|no,是否自动创建设备文件                        -c:指定chunk大小                        -x:指定空闲盘个数                管理选项:--add                        -r:移除一个设备                        -f:模拟一个设备故障

5.创建一个软raid

要求:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

创建raid1需要两块磁盘,这里选用sdb sdc做练习,空闲磁盘用sdd
首先使用fdisk工具将硬盘分区,id修改为raid

w保存分区信息sdc和sdd使用同样的操作创建分区因为时组织在一起使用,我们创建完raid之后再进行格式化,不需要单个磁盘格式化,创建raid并查看

写入文件系统

配置/etc/fstab文件实现开机自动挂载

6.清除软raid

0