Linux磁盘管理及软raid使用方法
一、磁盘的管理介绍
成都创新互联公司10多年成都企业网站建设服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都企业网站建设及推广,对成都柔性防护网等多个行业拥有多年的网站制作经验的网站建设公司。
硬盘的格式:
硬盘分为两种格式MBR和GPT MBR:在硬盘的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_name gdisk创建分区会开启一个交互式窗口,其中很很多命令 ?:显示支持的命令列表 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 光盘:iso9660 Windows:FAT32, exFAT,NTFS Unix: 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改为8e mkswap /dev/device_name blkid:查看指定设备的属性信息 -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
文章题目:Linux磁盘管理及软raid使用方法
文章源于:http://hbruida.cn/article/ipjope.html