根据作业要求,建立一个操作思路:
- 新建一台虚拟机,两块网络适配器,5块硬盘(IP地址为192.168.0.1),每块硬盘大小为20G。
- 选择镜像,启动虚拟机,根据向导进行安装
- 在分区的时候,选择设备类型为LVM,并且把分组名称设置为vg0(因为boot不能设置逻辑卷,所以设备类型还选择标准分区),设置相应的空间大小。
“/”: 10G
“/home”: 5G
“swap” : 2G
- 我们使用了一块硬盘,还剩下四块硬盘来做成raid5,3块做成raid,一块做成热备份。分别是sdb 、sdc、 sdd 和sde。
Mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd[b-e]
- Raid做成了/dev/md0,然后在raid上做物理卷,创建卷组vg1,然后在卷组里新建逻辑卷lvm1,大小为2G。
Pvcreate /dev/md0
Vgcreate vg1 /dev/md0
Lvcreate -L 2G -n lvm1 vg1
- 格式化逻辑卷lvm1文件格式为ext4,然后挂载到/mnt/data1目录下。(开机自动挂载)
Mkfs.ext4 /dev/vg1/lvm1
Blkid /dev/vg1/lvm1 (复制UUID)
Vim /etc/fstab (在最后新启一行插入)
粘贴UUID /mnt/data1 ext4 defaults 0 0
保存并退出
Mount -a
- 将这块卷组中做一个快照,并将其挂载到/mnt/backup目录下(如果没有则创建目录)
Lvcreate -L 20M -s -n backup /dev/vg1/lvm1
Mount /dev/vg1/lvm1 /mnt/backup
- 每间隔一个小时,自动备份快照,将快照压缩,并以当前时间+文件名.zip格式来命名。
在/test目录下建立脚本backup_picture.sh
输入下面内容
#!/bin/bash
Tar -zcvf /mnt/$(date+%H%M)-backup.tar.gz /mnt/backup2
然后执行crontab调度
# crontab -e
*1 * * * sh /test/backup_picture.sh
- 做成inotify+rsync实时备份,需要两台虚拟机,直接克隆虚拟机1,出现虚拟机2,更改虚拟机2的IP地址为192.168.0.2
192.168.0.1 虚拟机1
192.168.0.2 虚拟机2
10.在虚拟机2上执行命令:
# vim /etc/rsyncd.conf
输入下面内容
uid = 0
gid = 0
use chroot = no
max connections =200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[web]
path = /mnt/data1
ignore errors
read only = no
list = false
hosts allow = 192.168.0.1
hosts deny = 0.0.0.0/32
auth users = test
secrets file = /tmp/rsync.secrets
保存并退出
并依次执行下面命令
# echo “test:123456” >/tmp/rsync.secrets
# chmod 600 /tmp/rsync.secrets
# useradd test
# mkdir /mnt/data1
# rsync --daemon
11.然后来到第一台虚拟机上
执行下面命令
# ll /proc/sys/fs/inotify/
注:这里不要最小安装,最小安装的centos不支持inotify,往下进行不了,要选择带GUI的图形,带图形的支持inotify
# Cd /usr/src
这里直接把已经有点inotyfy-tools复制到虚拟机中,并放在/usr/src目录下
# Yum -y install gcc
# tar -xvf inotify-tools-3.14.tar.gz
# cd inotify-tools-3.14/
# ./configure --prefix=/usr/local/include
# make && make install
然后编写inotify运行脚本
# vim inotify.sh
输入以下内容
#!/bin/bash
host=192.168.0.2 #server的ip(备份服务器)
src=/mnt/backup #所要监控的备份目录(此处可以自定义,但是要保证存在)
des=web #自定义的模块名,需要与client端定义的一致
password=/tmp/rsync.password #密码文件
user=test #用户名(一个实际存在的账号)
inotify=/usr/local/include/ #inotify的安装目录
${inotify}/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
do
rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done
在执行下面命令
# echo 123456 > /tmp/rsync.password
# chmod 600 /tmp/rsync.password
# useradd test
运行脚本
# sh inotify.sh &
下面的步骤都是按照上述步骤进行的,可能有些截图没有表示,如果步骤遗漏请参照上述思路!!!
这里的软件选择要选择带GUI的图形界面,不要选择最小安装
不需要KDUMP,对于实验没有影响,根据自己的需求进行选择,这里不启用KDUMP
安全策略也不启用,和防火墙类似,为了防止出现意外错误,这里也不需要安全策略
根据要求配置每个分区的大小,最后的完成图为这样,文件系统都选择ext4,卷组为vg0
设置root密码
新建一个名字为jh的用户
耐心等待就好
这是一开始为了省时间装的不带图形的最小安装界面,但是在做inotify+rsync的时候最小安装不支持inotify,并且好多也没有安装软件,包括(rsync),这就是不要最小安装的原因。
上述步骤都在最小安装的命令界面都可以完成,当然,也遇到不少的麻烦,大部分都是软件不支持,例如下图的mdadm命令都不支持,需要yum安装
由于一开始设置的手动分配IP地址,所以不能上网,对应的,yum命令也就无法使用,然后我们把IP地址改变成自动获取,就能上网了
最后raid5上做LVM的效果图
然后我们做inotify之前,关闭虚拟机1(不是最小安装的那个,需要带图形的GUI)。克隆虚拟机。
虚拟机克隆完毕,然后我们需要更改IP地址,克隆的虚拟机配置都一样,不需要变动,更改IP地址即可。
虚拟机1 :192.168.0.1
虚拟机2 :192.168.0.2
下面是在虚拟机2上的操作
依次是,编写rsync配置文件
将test用户的密码设置为123456,并且写入到密码文件中
改变密码文件的权限为600
新建用户test
建立挂载目录/mnt/data1
运行rsync
来到虚拟机1
Ping一下百度看是否能ping通,如果能ping通说明可以上网,为yum安装gcc做准备。
检查是否支持inotify
把本机已经存在的inotify复制到虚拟机的/usr/src目录下。
用ll来查看,压缩包存在,我们来进行解压缩
配置以及安装inotify-tools
Inotify脚本内容
新建test用户,设置用户密码为123456,然后改变密码存储文件权限为600
运行虚拟机1的inotify脚本,出现进程号,待快照生成时,就会在虚拟机2同步上传一个快照。
到此,根据实验要求的操作步骤结束!