组装分区为RAID设备——创建和管理系统备份
时间:2016-7-25 | 作者:楼台听枫雨 | 分类:linux技术部 | 评论(0) | 浏览(2352) | uedbet最新网站: linux centos7 raid
了解RAID
这种被称为独立磁盘冗余阵列(Redundant Array of Independent Disks)(RAID)的技术是将多个硬盘组合成一个单独逻辑单元的存储解决方案,它提供了数据冗余功能并且改善硬盘的读写操作性能。
然而,实际的容错和磁盘 I/O 性能硬盘取决于如何将多个硬盘组装成磁盘阵列。根据可用的设备和容错/性能的需求,RAID 被分为不同的级别,你可以参考 RAID 系列文章以获得每个 RAID 级别更详细的解释。
我们选择用于创建、组装、管理、监视软件 RAID 的工具,叫做 mdadm (multiple disk admin 的简写)。
---------------- Debian 及衍生版 ----------------
# aptitude update && aptitude install mdadm
---------------- Red Hat 和基于 CentOS 的系统 ----------------
# yum update && yum install mdadm
---------------- openSUSE 上 ----------------
# zypper refresh && zypper install mdadm #
将分区组装成 RAID 设备
组装已有分区作为 RAID 设备的过程由以下步骤组成。
1. 使用 mdadm 创建阵列
如果先前其中一个分区已经格式化,或者作为了另一个 RAID 阵列的一部分,你会被提示以确认创建一个新的阵列。假设你已经采取了必要的预防措施以避免丢失重要数据,那么可以安全地输入 Y 并且按下回车。
# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1
创建 RAID 阵列
2. 检查阵列的创建状态
在创建了 RAID 阵列之后,你可以检查使用以下命令检查阵列的状态。
# cat /proc/mdstat
or
# mdadm --detail /dev/md0 [More detailed summary]
检查 RAID 阵列的状态
3. 格式化 RAID 设备
如本系列第四讲所介绍的,按照你的需求/要求采用某种文件系统格式化你的设备。
4. 监控 RAID 阵列服务
让监控服务时刻监视你的 RAID 阵列。把# mdadm --detail --scan
命令输出结果添加到 /etc/mdadm/mdadm.conf
(Debian及其衍生版)或者/etc/mdadm.conf
(Cent0S/openSUSE),如下。
# mdadm --detail --scan
监控 RAID 阵列
# mdadm --assemble --scan [Assemble the array]
为了确保服务能够开机启动,需要以 root 权限运行以下命令。
Debian 及其衍生版
Debian 及其衍生版能够通过下面步骤使服务默认开机启动:
# update-rc.d mdadm defaults
在 /etc/default/mdadm
文件中添加下面这一行
AUTOSTART=true
CentOS 和 openSUSE(systemd-based)
# systemctl start mdmonitor
# systemctl enable mdmonitor
CentOS 和 openSUSE(SysVinit-based)
# service mdmonitor start
# chkconfig mdmonitor on
5. 检查RAID磁盘故障
在支持冗余的的 RAID 级别中,在需要时会替换故障的驱动器。当磁盘阵列中的设备出现故障时,仅当存在我们第一次创建阵列时预留的备用设备时,磁盘阵列会将自动启动重建。
检查 RAID 故障磁盘
否则,我们需要手动将一个额外的物理驱动器插入到我们的系统,并且运行。
# mdadm /dev/md0 --add /dev/sdX1
/dev/md0 是出现了问题的阵列,而 /dev/sdx1 是新添加的设备。
6. 拆解一个工作阵列
如果你需要使用工作阵列的设备创建一个新的阵列,你可能不得不去拆解已有工作阵列——(可选步骤)
# mdadm --stop /dev/md0 # Stop the array
# mdadm --remove /dev/md0 # Remove the RAID device
# mdadm --zero-superblock /dev/sdX1 # Overwrite the existing md superblock with zeroes
7. 设置邮件通知
你可以配置一个用于发送通知的有效邮件地址或者系统账号(确保在 mdadm.conf 文件中有下面这一行)。——(可选步骤)
MAILADDR root
在这种情况下,来自 RAID 后台监控程序所有的通知将会发送到你的本地 root 账号的邮件箱中。其中一个类似的通知如下。
说明:此次通知事件和第5步中的例子相关。此处一个设备被标志为错误,并且一个空闲的设备自动地被 mdadm 加入到阵列。我们用完了所有“健康的”空闲设备,因此我们得到了通知。
RAID 监控通知
了解 RAID 级别
RAID 0
阵列总大小是最小分区大小的 n 倍,n 是阵列中独立磁盘的个数(你至少需要两个驱动器/磁盘)。运行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 0 阵列。
# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1
常见用途:用于支持性能比容错更重要的实时应用程序的设置
RAID 1 (又名镜像)
阵列总大小等于最小分区大小(你至少需要两个驱动器/磁盘)。运行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分区组装一个 RAID 1 阵列。
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
常见用途:操作系统的安装或者重要的子文件夹,例如 /home
RAID 5 (又名奇偶校验码盘)
阵列总大小将是最小分区大小的 (n-1) 倍。所减少的大小用于奇偶校验(冗余)计算(你至少需要3个驱动器/磁盘)。
说明:你可以指定一个空闲设备 (/dev/sde1) 替换问题出现时的故障部分(分区)。运行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1,/dev/sde1 组装一个 RAID 5 阵列,其中 /dev/sde1 作为空闲分区。
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1
常见用途:Web 和文件服务
RAID 6 (又名双重奇偶校验码盘)
阵列总大小为(ns)-2s,其中n为阵列中独立磁盘的个数,s为最小磁盘大小。
说明:你可以指定一个空闲分区(在这个例子为 /dev/sdf1)替换问题出现时的故障部分(分区)。
运行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 和 /dev/sdf1 组装 RAID 6 阵列,其中 /dev/sdf1 作为空闲分区。
# mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1
常见用途:大容量、高可用性要求的文件服务器和备份服务器。
RAID 1+0 (又名镜像条带)
因为 RAID 1+0 是 RAID 0 和 RAID 1 的组合,所以阵列总大小是基于两者的公式计算的。首先,计算每一个镜像的大小,然后再计算条带的大小。
# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1
常见用途:需要快速 IO 操作的数据库和应用服务器
创建和管理系统备份
记住, RAID 其所有的价值不是在于备份的替换者!在黑板上写上1000次,如果你需要的话,但无论何时一定要记住它。在我们开始前,我们必须注意的是,没有一个放之四海皆准的针对所有系统备份的解决方案,但这里有一些东西,是你在规划一个备份策略时需要考虑的。
备份你的数据
方法1:使用 dd 命令备份整个磁盘。你可以在任意时间点通过创建一个准确的镜像来备份一整个硬盘或者是分区。注意当设备是离线时,这种方法效果最好,也就是说它没有被挂载并且没有任何进程的 I/O 操作访问它。
这种备份方法的缺点是镜像将具有和磁盘或分区一样的大小,即使实际数据占用的是一个很小的比例。比如,如果你想要为只使用了10%的20GB的分区创建镜像,那么镜像文件将仍旧是20GB。换句话来讲,它不仅包含了备份的实际数据,而且也包含了整个分区。如果你想完整备份你的设备,那么你可以考虑使用这个方法。
从现有的设备创建一个镜像文件
# dd if=/dev/sda of=/system_images/sda.img
或者
--------------------- 可选地,你可以压缩镜像文件 -------------------
# dd if=/dev/sda | gzip -c > /system_images/sda.img.gz
从镜像文件恢复备份
# dd if=/system_images/sda.img of=/dev/sda
或者
--------------------- 根据你创建镜像文件时的选择(译者注:比如压缩) ----------------
# gzip -dc /system_images/sda.img.gz | dd of=/dev/sda
方法2:使用 tar 命令备份确定的文件/文件夹——已经在本系列第三讲中讲了。如果你想要备份指定的文件/文件夹(配置文件,用户主目录等等),你可以使用这种方法。
方法3:使用 rsync 命令同步文件。rsync 是一种多功能远程(和本地)文件复制工具。如果你想要从网络设备备份或同步文件,rsync 是一种选择。
无论是你是正在同步两个本地文件夹还是本地 < — > 挂载在本地文件系统的远程文件夹,其基本语法是一样的。
# rsync -av source_directory destination_directory
在这里,-a 递归遍历子目录(如果它们存在的话),维持符号链接、时间戳、权限以及原本的属主/属组,-v 显示详细过程。
rsync 同步文件
除此之外,如果你想增加在网络上传输数据的安全性,你可以通过 ssh 协议使用 rsync。
通过 ssh 同步本地到远程文件夹
# rsync -avzhe ssh backups root@remote_host:/remote_directory/
这个示例,本地主机上的 backups 文件夹将与远程主机上的 /root/remote_directory 的内容同步。
在这里,-h 选项以易读的格式显示文件的大小,-e 标志用于表示一个 ssh 连接。
rsync 同步远程文件
通过ssh同步远程到本地文件夹
在这种情况下,交换前面示例中的 source 和 destination 文件夹。
# rsync -avzhe ssh root@remote_host:/remote_directory/ backups
请注意这些只是 rsync 用法的三个示例而已(你可能遇到的最常见的情形)。对于更多有关 rsync 命令的示例和用法 ,你可以查看下面的文章。
总结
作为一个系统管理员,你需要确保你的系统表现得尽可能好。如果你做好了充分准备,并且如果你的数据完整性能被诸如 RAID 和系统日常备份的存储技术支持,那你将是安全的。
如果你有有关完善这uedbet改名字的问题、评论或者进一步的想法,可以在下面畅所欲言。除此之外,请考虑通过你的社交网络简介分享这系列文章。
本文由楼台听枫雨原创或编辑,互联分享,尊重版权,转载请以链接形式标明本文地址
你可能感兴趣的话题
发表评论: