Linux基础学习之从入门到精通Day7-7
LVM快照snapshot
1. 创建快照 (EXT4)
[root@server0 ~]# lvcreate -L 128M -s -n lv2-snap /dev/vg1/lv2
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 768.00m
lv2 vg1 owi-aos— 512.00m
lv2-snap vg1 swi-aos— 128.00m lv2 5.92
[root@server0 ~]# mount -o ro /dev/vg1/lv2-snap /mnt/lv2-snap/ 不希望破坏快照卷中的数据
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2
/dev/mapper/vg1-lv2–snap ext4 488M 32M 429M 7% /mnt/lv2-snap
[root@server0 ~]# lvscan
ACTIVE ‘/dev/vg1/lv1’ [768.00 MiB] inherit
ACTIVE Original ‘/dev/vg1/lv2’ [512.00 MiB] inherit
ACTIVE Snapshot ‘/dev/vg1/lv2-snap’ [128.00 MiB] inherit
[root@server0 ~]# ls /mnt/lv2
etc lost+found
[root@server0 ~]# ls /mnt/lv2-snap/
etc lost+found
-
修改原卷的数据
-
观察Snapshot
[root@server0 ~]# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 768.00m
lv2 vg1 owi-aos— 512.00m
lv2-snap vg1 swi-aos— 128.00m lv2 30.56
XFS:
[root@server0 ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /mnt/lv1-snap/s
挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据
[root@server0 ~]# dmsetup ls --tree
vg1-lv2–snap (252:5)
├─vg1-lv2–snap-cow (252:7)
│ └─ (253:17)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
vg1-lv2 (252:1)
└─vg1-lv2-real (252:6)
├─ (253:17)
└─ (253:18)
快照自动增长:
[root@server0 ~]# vim /etc/lvm/lvm.conf
snapshot_autoextend_threshold = 70
snapshot_autoextend_percent = 20
[root@server0 ~]# systemctl restart lvm2-monitor.service
[root@server0 ~]# systemctl enable lvm2-lvmetad.service
注:快照卷 和 原卷 使用同一VG空间
磁盘阵列 RAID
RAID类型 个数 利用率 优缺点
------------------------------------------------------
RAID0 条带集 2+ 100% 读写速率最快,不容错
RAID1 镜像集 2 50% 读写速率一般,容错
RAID5 带奇偶校验条带集 3+ (n-1)/n 读写速率快,容错,允许坏一块
RAID6 带奇偶校验条带集双校验dp 4+ (n-2)/n 读写快,容错,允许坏两块
RAID01
RAID10 RAID1的安全+RAID0的高速 4 50% 读写速率快,容错
RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速率快,容错
RAID60 RAID6的安全+RAID0的高速 8 (n-4)/n 读写速率快,容错
------------------------------------------------------
一、不同场景RAID的使用
RAID 实现方式
硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有电池和无电池
软RAID: 通过操作系统实现,比如Windows、Linux
二、RAID5 (3块硬盘) + 热备(1块硬盘)
-
准备4块硬盘
[root@~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 48 Jan 13 16:07 /dev/sdd
brw-rw---- 1 root disk 8, 64 Jan 13 16:07 /dev/sde
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdf
brw-rw---- 1 root disk 8, 80 Jan 13 16:07 /dev/sdg -
创建RAID
[root@~]# yum -y install mdadm //确保mdadm命令可用
[root@~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{d,e,f,g}
mdadm: array /dev/md0 started.
-C 创建RAID
/dev/md0 第一个RAID设备
-l5 RAID5
-n RAID成员的数量
-x 热备磁盘的数量 -
格式化,挂载
[root@~]# mkfs.xfs /dev/md0
[root@~]# mkdir /mnt/raid5
[root@~]# mount /dev/md0 /mnt/raid5
[root@~]# cp -rf /etc /mnt/raid5/etc1 -
查看RAID信息
[root@tianyun ~]# mdadm -D /dev/md0 //-D 查看详细信息
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 13 16:28:47 2014
Raid Level : raid5
Array Size : 2095104 (2046.34 MiB 2145.39 MB)
Used Dev Size : 1047552 (1023.17 MiB 1072.69 MB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistentUpdate Time : Mon Jan 13 16:34:51 2014
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1Layout : left-symmetric
Chunk Size : 512K
Number Major Minor RaidDevice State
0 8 48 0 active sync /dev/sdd
1 8 64 1 active sync /dev/sde
4 8 80 2 active sync /dev/sdf3 8 96 - spare /dev/sdg
-
模拟一块硬盘损坏,并移除
终端一:
[root@~]# watch -n 0.5 ‘mdadm -D /dev/md0 | tail’ //watch持续查看
终端二:
[root@~]# mdadm /dev/md0 -f /dev/sde -r /dev/sde
//模拟坏了并移除 -f --fail -r --remove -
设置RAID开机生效
[root@~]# mdadm -D -s
ARRAY /dev/md0 metadata=1.2 name=sxl1.com:0 UUID=c6761621:8878498f:f5be209e
[root@~]# mdadm -D -s > /etc/mdadm.conf
========================================================
mdadm选项:
-s --scan
-S --stop
-D --detail
-C --create
-f --fail
-r --remove
-n --raid-devices=3
-x --spare-devices=1
-l --level=5
lsof 恢复文件
lsof (list open files)
FD 文件句柄
1. 查看打开文件message的进程/var/log/messages
[root@~]# lsof |grep message
lsof: WARNING: can’t stat() fuse.gvfsd-fuse file system /run/user/42/gvfs
Output information may be incomplete.
abrt-watc 751 root 4r REG 253,0 30056298 36565121 /var/log/messages
rsyslogd 1316 root 4w REG 253,0 30056298 36565121 /var/log/messages
in:imjour 1316 1322 root 4w REG 253,0 30056298 36565121 /var/log/messages
rs:main 1316 1323 root 4w REG 253,0 30056298 36565121 /var/log/messages
2. 备份后模拟误删除文件
[root@~]# cp -rf /var/log/messages /var/log/messages.bak
[root@~]# rm -rf /var/log/messages
3. lsof再次查看message文件状态
[root@~]# lsof |grep message
lsof: WARNING: can’t stat() fuse.gvfsd-fuse file system /run/user/42/gvfs
Output information may be incomplete.
rsyslogd 1316 root 4w REG 253,0 30063165 36565121 /var/log/messages (deleted)
in:imjour 1316 1322 root 4w REG 253,0 30063165 36565121 /var/log/messages (deleted)
rs:main 1316 1323 root 4w REG 253,0 30063165 36565121 /var/log/messages (deleted)