Linux磁盘管理进阶

Linux磁盘管理进阶


  • dd命令

  • SWAP与移动介质

  • 磁盘配额

  • RAID


dd命令

dd - convert and copy a file
Copy a file, converting and formatting according to the operands.

dd命令基本用法:

ddif=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 复制单元大小count=#:复制多少个bs
skip=blocks从开头忽略blocks个ibs大小的块
seek=blocks从开头忽略blocks个obs大小的块

常用选项:

conv=conversion[,conversion...] 用指定的参数转换文件。    
    lcase 把大写字符转换为小写字符    
    ucase 把小写字符转换为大写字符
    swab 交换输入的每对字节
    noerror 出错时不停止
    notrunc 不截短输出文件
    sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐

使用dd命令对磁盘进行操作进,最好使用块设备文件;

使用示例:

创建两个文件:

[root@centos7 ~]#echo {1..9} |tr -d [:space:] > f1
[root@centos7 ~]#echo {a..z} |tr -d [:space:] > f2
[root@centos7 ~]#cat f1
123456789[root@centos7 ~]#
[root@centos7 ~]#cat f2
abcdefghijklmnopqrstuvwxyz[root@centos7 ~]#
[root@centos7 ~]#
[root@centos7 ~]#dd if=f1 of=f2 bs=1 count=3 
3+0 records in
3+0 records out
3 bytes (3 B) copied, 0.00136469 s, 2.2 kB/s
[root@centos7 ~]#cat f2
123[root@centos7 ~]#     # 从f1中复制了3字节的内容覆盖了f2
[root@centos7 ~]#dd if=f1 of=f2 bs=1 count=3 skip=3 seek=3
3+0 records in
3+0 records out
3 bytes (3 B) copied, 0.000396399 s, 7.6 kB/s
[root@centos7 ~]#cat f2
abc456[root@centos7 ~]#  # 从f1中跳过了3字节并复制其后的3字节插入到f2的3字节后面
[root@centos7 ~]#dd if=f1 of=f2 bs=1 count=3 skip=3 seek=3 conv=notrunc  # 不截断f2后面的内容 
3+0 records in
3+0 records out3 bytes (3 B) copied, 0.00277328 s, 1.1 kB/s
[root@centos7 ~]#cat f2
abc456ghijklmnopqrstuvwxyz[root@centos7 ~]#

备份MBR:

[root@centos7 ~]#dd if=/dev/sda of=/testdir/sda.mbr bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000380182 s, 1.3 MB/s
[root@centos7 ~]#

磁盘拷贝:

[root@centos7 ~]#dd if=/dev/sda of=/dev/sdb

破坏MBR中的bootloader:

[root@centos7 ~]#dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
1+0 records in
1+0 records out
64 bytes (64 B) copied, 0.00180836 s, 35.4 kB/s
[root@centos7 ~]#

破坏MBR中的分区表:

[root@centos7 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446
64+0 records in
64+0 records out
64 bytes (64 B) copied, 0.00589307 s, 10.9 kB/s
[root@centos7 ~]#

wKiom1fLfWjxcFH2AABfFjxJ6C0113.png

可见,sda的分区已经被破坏!

修复sda分区表:

[root@centos7 ~]#dd if=/testdir/sda.mbr of=/dev/sda bs=512 count=1 
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000348826 s, 1.5 MB/s
[root@centos7 ~]#partprobe # 同步分区表
[root@centos7 ~]#

wKioL1fLfY_ydC_QAAC-IoykDts725.png

sda被成功修复!

备份:

dd if=/dev/sdx of=/dev/sdy
    将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
    将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx | gzip >/path/to/image.gz
    备份/dev/sdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
[root@centos7 ~]#dd if=/dev/sdb1 |gzip > /testdir/image.gz
409600+0 records in
409600+0 records out
209715200 bytes (210 MB) copied, 9.02236 s, 23.2 MB/s
[root@centos7 ~]#ll /testdir/image.gz
-rw-r--r--. 1 root root 139129150 Aug 29 08:16 /testdir/image.gz
[root@centos7 ~]#

恢复:

dd if=/path/to/image of=/dev/sdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx将压缩的备份文件恢复到指定盘
[root@centos7 ~]#gzip -cd /testdir/image.gz |dd of=/dev/sdc
409600+0 records in
409600+0 records out
209715200 bytes (210 MB) copied, 6.16743 s, 34.0 MB/s
[root@centos7 ~]#
拷贝内存资料到硬盘
dd if=/dev/mem of=/root/mem.bin bs=1024
将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像
dd if=/dev/cdrom of=/root/cd.iso
拷贝光盘数据到root文件夹下,并保存为cd.iso文件
销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1
利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行。

得到最恰当的block size: 通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小

wKiom1fLffOD6_InAADR_atN1Xo942.png

测试硬盘读写速度:通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度

[root@centos7 ~]#dd if=/root/1Gb.file bs=64k |dd of=/dev/null
[root@centos7 ~]#dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

wKioL1fLfhXTS-ESAACF2isvqX8970.png

修复磁盘

[root@centos7 ~]#dd if=/dev/sda of=/dev/sda

当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生消磁点。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。


系统配额

SWAP


换分区是系统RAM(裸设备)的补充,涉及到的基本命令有:mkswap, swapon, swapoff,
其优先级范围为0-32767,如果用户未指定swap的优先级,内核会给swap指定一个优先级,此值从-1开始,每加一个优先级递减一;用户指定的优
先级(是正数)永远高于核心缺省指定的优先级(是负数);swap分区即可以是一个整个硬盘,也可以是一个分区(要指定分区类型)或者是将一个文件创建成swap分区

mkswap - set up a Linux swap area
swapon, swapoff - enable/disable devices and files for paging and swapping

基本设置包括:

创建交换分区或者文件

使用mkswap写入特殊签名

在/etc/fstab文件中添加适当的条目

使用swapon -a 激活交换空间

即:swap分区—> 格式化—> 挂载–> 激活

创建一个swap分区:

wKiom1fLfkqAAHOZAAB4AMYpbSo336.png

[root@centos7 ~]#dd if=/dev/zero of=/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 1.75694 s, 611 MB/s
[root@centos7 ~]#ls

wKioL1fLfoSz-4EZAAAqfEtkcGw199.png

格式化swap分区:

[root@centos7 ~]#mkswap /dev/sdc1Setting up swapspace version 1, size = 10485756 KiB
no label, UUID=a0ac8c08-23b9-4672-bee3-449e949cea8c

[root@centos7 ~]#mkswap /swapfile Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=4659cff5-5718-4119-a70e-6283ca443509
[root@centos7 ~]#

写入/etc/fstab

wKiom1fLfpeTshawAACcU6DlWpk929.png

[root@centos7 /]#swapon -a    # 激活/etc/fstab中的swap类型
[root@centos7 /]#swapon -s
Filename                                Type            Size    Used    Priority
/dev/sdc1                               partition       10485756        0       10
/swapfile                               file    1048572 0       -1

wKiom1fLfrXRye9wAABBaWfVunQ485.png

由此,你当然可以想到,mkfs命令应该把一个文件“做成”普通分区,并且挂载之:

[root@centos7 ~]#dd if=/dev/zero of=/testdir/partfile bs=1M count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00416736 s, 252 MB/s

[root@centos7 ~]#mkfs.ext4 /testdir/partfile  # mkfs.xfs不行
[root@centos7 ~]#blkid /testdir/partfile
/testdir/partfile: UUID="e925d5a7-6def-430c-99e0-c4dc966caadf" TYPE="ext4" 
[root@centos7 ~]#
[root@centos7 ~]#mkdir /testdir/partfile
[root@centos7 ~]#mount -a
[root@centos7 ~]#mount |grep /testdir/
/testdir/partfile on /mnt/partfile type ext4 (rw,relatime,seclabel)
[root@centos7 ~]#
[root@centos7 ~]#cd /mnt/partfile/
[root@centos7 /mnt/partfile]#ls
lost+found
[root@centos7 /mnt/partfile]#

移动介质

所有的移动介质要想被内核认可,必须得挂载,而挂载意味着使外来的文件系统看起来如同是主目录树的一部分,且必须要遵守:访问前、介质必须被挂载;摘除时,介质必须被卸载。

按照默认设置,非根用户只能挂载某些设备(光盘、DVD、USB等等), 且挂载点通常在/media 或/mnt下。

如何使用光盘:

eject命令卸载或弹出磁盘,刻录光盘可用以下命令:

wodim–v –eject centos.iso

创建IOS文件可用以下命令:

cp/dev/cdrom /root/centos7.isomkisofs -r -o /root/etc.iso /etc

手工挂载

mount /dev/cdrom/mnt/

那如何在/etc/fstab文件里面挂载iso文件呢?如何把普通文件也挂载到一个目录上呢?

wKioL1fLfzXQ3H7zAABnTgAXrTM464.png

wKioL1fLf0WSsX4GAABCilVAwd0169.png

wKiom1fLf1TQxwErAADN9OoZEJU728.png


磁盘配额


谓磁盘配额,就是超级用户给普通用户分配一定的磁盘空间,以防止普通用户占用大量的磁盘空间;
磁盘配额是在内核中执行,以文件系统为单位启用,可以做到对不同的组或用户制定不同的策略,且根据块或节点进行限制;另外,磁盘配额的限制分别软限制
(soft limit)与硬限制(hatd
limit),软限制就是达到一定磁盘额度后给予警告,而硬限制就是非常强硬地限制你的所作所为,除了建立空文件和空目录(提前是你的节点数没达到上限,
即还有空留的inode。

磁盘配额的常用命令:

usrquota: 启用用户配额
grpquota:启用组配额 
noquota: 不启用配额 

quotacheck, quotaon, quotaoff, repquota

实现磁盘配额主要有以下五个步骤:

1.启用配置挂载选项 
vim /etc/fstab  usrquota,grpquota2. 创建配额数据库
mount -o remount /dev/sdb1
quotacheck -cug /home
setenforce 03. 启用数据库
quotaon /home4. 配置配额项
edquota liansir
edquota -p liansir shitou
setquota tom 100000 150000 0 0 /home5.测试
quota liansir
repquota /home

硬盘配额/home目录


Linux中,磁盘配额是针对分区进行的,而不是硬盘,即磁盘配额是以文件系统为单位,在下面的试验中,我们将对/home目录进行硬盘配额,需要让
home独立分区,但是现在home不是独立分区是和根一起的,如果想要实现就需要在根上做磁盘配额,但是这样是不合理的。需要把home独立到一个分
区。

所以,此时我们需要完成的一项工作就是把/home迁移到五个独立的文件系统。

分区、格式化、挂载一步不能少:

[root@centos7 ~]#mkfs.ext4 /dev/sdb3 -L /home   # 设其卷标为/home
[root@centos7 ~]#blkid /dev/sdb3
/dev/sdb3: LABEL="/home" UUID="e18fa7a2-d436-4bd5-bfdb-453d0af53fb6" TYPE="ext4" 
[root@centos7 ~]#
[root@centos7 ~]#mkdir /mnt/home
[root@centos7 ~]#mount /dev/sdb3 /mnt/home  # 新设备必须挂载才能使用

接下来,还存在一个问题,就是把/home下的数据迁移到新分区/dev/sdb3上面,复制或移动都可以,但要注意权限不要被改变!

wKioL1fLf3_xTdHSAABYlrdPkvc649.png

挂载到/home目录,注意/home目录下数据的迁移;所以/dev/sdb3不是一次到位挂载到/home,而是先挂载到了一个其它的空目录,待完成数据迁移后再挂载到/home。最后取消之前的挂载。注:在centos 7上只会显示最后一次挂载。

wKiom1fLf5CAbg1VAABfveeEGEs041.png

磁盘配额的准备工作至此结束!如果是对一个普通的空目录进行硬盘配额的话也就没有数据迁移这回事了。

下面正式磁盘配额:

  1. 初始化:在/etc/fstab配置文件里面写入分区挂载选项:usrquota, grpquota;初始化数据库:checkquota, 注意初始化磁盘配额数据库前可能需要重新挂载

wKiom1fLf67STPNcAAAiIqLjEI8493.png

[root@centos7 ~]#mount -o remount /home
[root@centos7 ~]#quotacheck -cug /home

wKioL1fLf76jKZztAABGNFCo-XA434.png

[root@centos7 /home]#file aquota.group aquota.user #这两个文件是数据库的二进制文件,而非文本文件
aquota.group: data
aquota.user:  data
[root@centos7 /home]#

注:在centos 6上面会提示权限不允许,需要关闭SELinux,setenforce 0.

  1. 启用数据库:

[root@centos7 ~]#quotaon /home
[root@centos7 ~]#quotaon -p /home
group quota on /home (/dev/sdb3) is on
user quota on /home (/dev/sdb3) is on
[root@centos7 ~]#
  1. 配置用户的磁盘配额

[root@centos7 ~]#edquota liansir

wKiom1fLf9bDfikgAAAzWMR2vjE180.png

直接原处修改:

wKioL1fLf-rgEjFdAAAjH5_vP64042.png

  1. 切换到普通用户的家目录,测试

wKioL1fLf_qjSjK5AAEGsbYCmPY554.png

测试成功!

用户调查:查看特定用户的磁盘配额情况

[root@centos7 ~]#quota liansir   
Disk quotas for user liansir (uid 1000): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb3  102400*  80000  102400   6days     133       0       0

配额概述:查看指定分区的磁盘配额情况

[root@centos7 ~]#repquota /home*** Report for user quotas on device /dev/sdb3
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
liansir   +-  102400   80000  102400  6days     133     0     0       
hacker    --      52       0       0             13     0     0       
xue       --      32       0       0              8     0     0       
[root@centos7 ~]#

我们看到,liansir用户是有磁盘配额了,现在如果要把hacker用户的磁盘配额设置成与liansir一样,我们此时只是一条命令搞定!edquata -p

[root@centos7 ~]#edquota -p liansir hacker
[root@centos7 ~]#

当然,我们还可以在命令行里面直接设置用户的磁盘配额:

[root@centos7 ~]#setquota xue 100000 200000 0 0 /home  #注意要指定分区
[root@centos7 ~]#

wKiom1fLgCfCaBBKAABVd7tGl6I214.png


RAID

RAID
(Redundant Arrays of Independent Disks), 即独立冗余磁盘阵列,其重要技术是同位检查(Parity
Check), 在多块硬盘组成的阵列中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。


盘阵列其样式有三种,一是外接式磁盘阵列柜、二是内接式磁盘阵列卡,三是利用软件来仿真。外接式磁盘阵列柜最常被使用大型服务器上,具可热交换(Hot
Swap)的特性;内接式磁盘阵列卡,价格相对便宜,需要较高的安装技术,硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高
速缓冲等功能;软件仿真的方式,是指通过操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。其中,前两者称为硬
RAID,软件仿真称为软RAID.

RAID
是有级别的,本文以软RAID为例,且RAID级别之间可以按需组合;配置RAID时的主要命令为mdadm, 且内核中提供有md模块(multi
devices),RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等。

mdadm

mdadm - manage MD devices aka Linux Software RAID
mdadm [mode] <raiddevice> [options] <component-devices>


MODES
   mdadm has several major modes of operation:

   -A, --assemble
          Assemble a pre-existing array.

   -B, --build
          Build a legacy array without superblocks.

   -C, --create
          Create a new array.

   -F, --follow, --monitor
          Select Monitor mode.

   -G, --grow
          Change the size or shape of an active array.
          
即:
    模式:
    创建:-C
    装配: -A
    监控: -F
    管理:-f, -r, -a

接下来看看RAID的主要级别:

  1. RAID 0:条带卷,strip

RAID

0最简单的实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。只需要2
块以上的硬盘即可,无冗余或错误修复能力,实现成本是最低,最大的缺点在于任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独一块硬盘的
1/N。所以,RAID 0一般只是在那些对数据安全性要求不高的情况下才被人们使用。

wKiom1fLgD2QU6vrAAGW-7Eimqk537.png

  1. RAID 1:镜像卷,mirror

RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件。具备很好的磁盘冗余能力,但磁盘利用率为50%,RAID 1多用在保存关键性的重要数据的场合。

wKioL1fLgFDC1TOpAAGUipHnD4k749.png

  1. RAID 5: 带奇偶校验的条带机

RAID
5的奇偶校验码存在于所有磁盘上,其中的p0代表第0带区的奇偶校验值,其它亦然,对于RAID
5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID
5中有“写损失”,即每一次写操作,将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

wKioL1fLgGHRgSuMAAGJUAeX4iI889.png

  1. RAID 01

RAID 01是RAID0与RAID1的结合体,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID 01要在磁盘镜像中建立带区集至少4个硬盘。

wKiom1fLgHORcu5zAAI7ZQxC1Io046.png

  1. RAID 10

RAID 10是一个带区结构加一个镜象结构,可以相互补充,达到既高效又高速的目的。主要用于数据容量不大,但要求速度和差错控制的数据库中。

wKioL1fLgIagBPA2AAIO_bxl-tA790.png

注:RAID级别图片来自网络。

介绍完RAID的主要级别,我们再来看看mdadm具体的模式命令吧!

-C: 创建模式    
    -n #: 使用#个块设备来创建此RAID;    
    -l #:指明要创建的RAID的级别;    
    -a {yes|no}:自动创建目标RAID设备的设备文件;    
    -c CHUNK_SIZE: 指明块大小;    
    -x #: 指明空闲盘的个数;
    
-D:显示raid的详细信息;    
    mdadm-D /dev/md#
    
管理模式:
    -f: 标记指定磁盘为损坏    
    -a: 添加磁盘    
    -r: 移除磁盘观察md的状态:
    cat /proc/mdstat
    
停止md设备:
    mdstat -S DVICE

OK,现在我们来实现一个RAID 5, 4个RAID盘,1个备用盘,总共5个盘。

我们准备四个硬盘,并都创建一个大小为10G的分区:

sdb      8:16   0   20G  0 disk 
└─sdb1   8:17   0   10G  0 part 
sdd      8:48   0   20G  0 disk 
└─sdd1   8:49   0   10G  0 part 
sdc      8:32   0   20G  0 disk 
└─sdc1   8:33   0   10G  0 part 
sde      8:64   0   20G  0 disk 
└─sde1   8:65   0   10G  0 part 
sdf      8:80   0   20G  0 disk 
└─sdf1   8:81   0   10G  0 part 
[root@centos6 ~]#
  1. 创建RAID: /dev/md0

[root@centos6 ~]#mdadm -C /dev/md0 -l 5 -n 4 -x 1 /dev/sd{b,d,c,e,f}1
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@centos6 ~]#

查看:

[root@centos6 ~]#ll /dev/md0
brw-rw----. 1 root disk 9, 0 Sep  2 20:17 /dev/md0
[root@centos6 ~]#cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] 
md0 : active raid5 sde1[5] sdf1[4](S) sdc1[2] sdd1[1] sdb1[0]      
31446528 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      
unused devices: <none>
[root@centos6 ~]#
  1. 格式化RAID

[root@centos6 ~]#mkfs.ext4 /dev/md0

查看:

[root@centos6 ~]#blkid /dev/md0
/dev/md0: UUID="0ea747b9-c98e-47fd-b08d-fd346ecbd654" TYPE="ext4" 
[root@centos6 ~]#
  1. 挂载

wKiom1fLgPaCPameAABAXTHgerU211.png

[root@centos6 ~]#mkdir /mnt/md0
[root@centos6 ~]#mount -a

查看:

[root@centos6 ~]#mount |grep /dev/md0
/dev/md0 on /mnt/md0 type ext4 (rw)
[root@centos6 ~]#
  1. 测试

[root@centos6 ~]#cd /mnt/md0
[root@centos6 /mnt/md0]#touch f1      # 可创建文件
[root@centos6 /mnt/md0]#
[root@centos6 ~]#mdadm /dev/md0 -f /dev/sdb1  # 损坏
/dev/sd1mdadm: set /dev/sdb1 faulty in /dev/md0
[root@centos6 ~]#
[root@centos6 ~]#mdadm /dev/md0 -r /dev/sdb1  # 热移除
mdadm: hot removed /dev/sdb1 from /dev/md0
[root@centos6 ~]#

至此,我们重启系统!

wKioL1fLgSri6hokAAAcWmJtHDE567.png

wKiom1fLgTjTymv7AAAd2ZP_rxY349.png

重启系统后我们发现RAID失效了!不过这个跟损坏/dev/sdb1没关系

此时再次重复以上步骤!

在重启系统之前我们必须先备份!

[root@centos6 ~]#mdadm -Ds /dev/md0 > /etc/mdadm.conf  # 否则重启系统后RAID失效

然后重启系统:

wKioL1fLgVHSwZgHAABfIPZD0zs624.png

查看RAID:

[root@centos6 ~]#mdadm -D /dev/md0

wKiom1fLgWPjd9nZAACauBmqPeY792.png

wKioL1fLgXPjcl-hAABywGh1ht8546.png

再次测试:

[root@centos6 ~]#mdadm /dev/md0 -f /dev/sdb1
mdadm: set /dev/sdb1 faulty in /dev/md0
[root@centos6 ~]#

wKioL1fLgYeyMcR2AABDLqNfcwo587.png

[root@centos6 ~]#mdadm /dev/md0 -r /dev/sdb1

wKiom1fLgcvi49g5AAA7m8K9LW8281.png

此时备用盘已经被移除,

在RAID盘里创建一些文件,然后我们再移除一块RAID硬盘。

[root@centos6 /mnt/md0]#dd if=/dev/zero of=/mnt/md0/f2 bs=100M count=1
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 0.254593 s, 412 MB/s
[root@centos6 /mnt/md0]#ll
total 102416
-rw-r--r--. 1 root root         0 Sep  2 21:56 f1
-rw-r--r--. 1 root root 104857600 Sep  2 21:56 f2
drwx------. 2 root root     16384 Sep  2 21:28 lost+found
[root@centos6 /mnt/md0]#
[root@centos6 ~]#mdadm /dev/md0 -f /dev/sdf1
mdadm: set /dev/sdf1 faulty in /dev/md0
[root@centos6 ~]#mdadm /dev/md0 -r /dev/sdf1
mdadm: hot removed /dev/sdf1 from /dev/md0
[root@centos6 ~]#
[root@centos6 ~]#cd /mnt/md0  #查看数据是否正常
[root@centos6 /mnt/md0]#ls
f1  f2  lost+found
[root@centos6 /mnt/md0]#

wKioL1fLghKxmd1-AACPs4hPwUs449.png

测试成功!

  1. RAID管理:添加新的分区与扩展新成员(在硬盘的数量上进行扩展)

[root@centos6 ~]#mdadm /dev/md0 -a /dev/sdg1  # 给RAID添加新分区
mdadm: added /dev/sdg1
[root@centos6 ~]#

wKiom1fLgjfherH0AAA6SKXjDPI642.png

wKioL1fLgkXD_5d8AAA662-6s2k993.png

[root@centos6 ~]#mdadm -G /dev/md0 -n 6 -a /dev/sdh1  # 扩展
mdadm: added /dev/sdh1

注意,在做RAID时,最好各硬盘的分区一样大,因为会以最小的为标准,多余的空间则会浪费掉;另外,生产环境中无人用软RAID,软RAID仅用途测试与理解RAID用!

本文主要介绍了dd命令的常规用法、如何建立交换分区SWAP、常用RAID的基本特性与RAID 5的配置. 2016.9.3

止战

原创文章,作者:Liansir,如若转载,请注明出处:http://www.178linux.com/43224

(0)
上一篇 2016-09-05 08:48
下一篇 2016-09-05 08:48

相关推荐

  • 2016年8月11号学习博客

    shell脚本编程 shell脚本是包含一些命令或声明,并符合一定格式的文本文件 shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件 命令查询过程:别名–>内部变量–>hash–>$PATH ~]#bash -n 检测脚本语法错误 ~]#bash -x 顺…

    Linux干货 2016-08-15
  • 第三周

    作业

    2017-12-15
  • 马哥教育网络班20期第1周课程练习

    答: 1、 ①控制器:是计算机的中枢神经,协调计算机各部分工作及内存与外设的访问等 ②运算器:运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。 ③储存器:存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。 ④IO:输入设备是将数据或控制命令等信息输入到计算机。输出设备把机算机的各种数据符号及文字或各种控制信号等…

    Linux干货 2016-06-23
  • N25_第六周

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; %s@^[[:space:]]+@#&@g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符; %s@^[[:spac:]]+@@g…

    Linux干货 2017-02-13
  • Shell编程(1)

    Shell编程:     编程语言:机器语言、汇编语言、高级语言         高级语言:             静…

    Linux干货 2016-08-18
  • LINUX命令历史

    LINUX命令历史 LINUX的命令历史是什么? linux的命令历史的作用是,记录执行过的命令。如果你经常使用 Linux 命令行,那么使用 命令历史可以有效地提升你的效率。history(管理历史命令)语法:[root@localhost]#history(选项)(参数)选项:n:n为数字,要列出最近的 n 笔命令列表-c(清空所有历史命令)-d (删除…

    2017-09-14