提高IO能力、提高耐用性:添加内存提高IO,添加电池保存断电数据丢失
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现方式:
外接式磁盘阵列:通过扩展卡提供适配能力(BIOS设置RAID)
内接式RAID:主板集成RAID控制器(BIOS设置RAID)
软RAID:软件实现
级别:level
RAID-0:0,条带卷
RAID-1:1,镜像卷
RAID-2
...
RAID-5
RAID-6
RAID-10:RAID-0和RAID-1组合
RAID-01
RAID-0:由RAID控制器进行数据分片分散存储到多个磁盘里
读写性能提升
可用空间:最小磁盘大小x磁盘个数
最少2块磁盘
坏一块磁盘,数据会丢失
RAID1:由RAID控制器进行数据分片分别存储一份到每个磁盘里
读性能提升,写性能略有下降
可用空间:最小磁盘大小
最少2块磁盘
坏一块磁盘不影响数据
RAID-4:最少3块磁盘,一个磁盘做效验(把其它磁盘数据对应以二进制数做异或运算保存)
读写都要经过效验盘,交验盘压力过大,不常用
RAID-5:3块磁盘轮流做为效验盘
读写性能提升
可用空间:(n-1)x最小盘
容错能力:只能坏一块磁盘
最少3块磁盘
RAID-6:效验码轮流存储在2块磁盘
读写性能提升
可用空间:(n-2)x最小盘
容错能力:只能坏二块磁盘
最少4块磁盘
RAID-01:先把磁盘分成两分组进行RAID0,然后在两组RAID0上进行RAID1
RAID-50:先RAID5,再RAID0
RAID-10:先把磁盘两两分组进行RAID1,然后在多组RAID1上进行RAID0
读写性能提升
可用空间:nx最小磁盘/2
容错能力:每组可坏一块
最少4块磁盘
JBOD:将多块磁盘空间合并为一个大的连续空间使用
常用级别:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD
软RAID:生产环境不建议使用
centos 6软RAID:内核模块md(最好用UUID挂载)
mdadm:模式化工具
mdadm [mode] <raiddevice> [options] <devices...>
支持RAID级别:LINEAR(JBOD),RAID0,RAID1,RAID4,RAID5,RAID6,RAID10
模式
创建:-C
装配:-A
监控:-F
管理:-f:标记为损坏,-r:移除,-a:添加
raiddevice:/dev/md#
devices...:任意块设备
创建时options
-n #:使用几块设备创建
-l #:指明创建级别
-a yes|no:自动创建目标设备文件
-c b_size:指定块大小
-x #:指明空闲盘个数
mdadm -D /dev/md#:查看已有RAID盘信息
mdadm -S /dev/md#:停止RAID盘
cat /proc/mdstat:查看RAID盘状态
watch -n1 'free':每1秒执行一次'free'命令并显示到屏幕
LVM:逻辑卷管理器
使用内核dm模块将一个或多个底层块设备组成一个逻辑设备模块
设备创建为PV物理卷;多个PV组成一个VG卷组,VG把PV按大小分成默认4M的PE块;卷组上创建以n个PE块组成的LV逻辑卷,LV可添加PE进行扩展;LV为独立文件系统可格式化;分配给LV的PE叫LE
设备文件
/dev/dm-#
软链接:/dev/VG_NAME/LV_MANE、/dev/mapper/VG_NAME-LV_NAME
创建LVM
fdisk /dev/sda#:分区并调整ID号为8e
PV管理工具
pvs:显示简单信息
pvdisplay [/DEVICE]:显示详细信息
pvcreate /DEVICE:创建PV
pvremove /DEVICE:删除PV
VG管理工具
vgs:显示简单信息
vgdisplay [VGgroup]:显示详细信息
vgcreate VGNAME /PV_DEVICE:创建指定VG名的VG包含指定PV
vgextend VGNAME /PV_DEVICE:添加PV到指定VG
vgremove VGNAME /PV_DEVICE:移除必须先迁移数据
pvmove /PV_DEVICE:迁移PV里数据
LV管理工具
lvs:显示简单信息
lvdisplay [VGgroup]:显示详细信息
lvcreate -L #[mMgGtT] VG_GNAME:创建指定LV大小包含指定VG组的LV
-n NAME:指定LV名
创建完成格式化设备,挂载设备
lvremove LV_NAME:删除LV卷
扩展逻辑卷
lvextend -L [+]#[mMgGtT] LV_DEVICE:扩展到多大,或扩展加多大
resize2fs LV_DEVICE:文件系统也扩展到新大小
缩减逻辑卷(不建议)
umount LV_DEVICE:必须先卸载
e2fsck -f LV_DEVICE:强制检测
resize2fs LV_DEVICE #[mMgGtT]:文件系统缩减到多大
lvreduce -L [+]#[mMgGtT] LV_DEVICE:LV缩减到多大
mount LV_DEVICE /DIR:重新挂载
快照卷:snapshot
用于保存某一刻文件系统元数据,当文件发生变化时备份此文件到快照卷,用于数据备份
创建快照:对以有的LVS文件系统创建快照
lvcreate -L #[mMgGtT] -p r -s -n 快照LV_NAME 原LV_NAME
-L:指明快照大小
-p r:只读
-s:指明创建为快照
-n:指明快照名
mount LV_DEVICE /DIR:挂载快照
文件系统挂载
光盘设备文件:/dev/sr0;/dev/cdrom,/dev/cdwr,/dev/dvd,/dev/dvdrw
mount -r /dev/cdrom /media/cdrom:只读挂载
dd命令:更底层系统复制
dd if=/SRC of=/DEST
bs=# count=N:指定复制#*N个字节
dd if=/dev/sda of=/dev/sdb:复制磁盘
dd if=/dev/sda of=/mbr.bak bs=512 count=1:复制备份mbr
dd if=/dev/zero of=/dev/sdm bs=512 count=1:清空mbr!!!
btrfs:为代替ext3/ext4
核心特性
多物理卷支持,可由多个底层物理卷组成,可添加移除修改卷;支持RAID
写时复制:复制文件,写新文件,更改inode指针
数据及元数据校验码:用于检查文件是否损坏,并修复
子卷
快照:支持快照的快照
透明压缩
文件系统创建
mkfs.btrfs
-L '卷标'
-d TYPE:指定数据存储类型(RAID0,RAID1,RAID5,RAID6,RAID10,single)默认为single只存一份
-m TYPE:指定元数据类型(RAID0,RAID1,RAID5,RAID6,RAID10,single,dup)默认为single只存一份
-O 特性:添加特性
-O list-all:列出支持的所有特性
mkfs.btrfs -L 'mybtr' /dev/sde /dev/sdf:可以直接把2块未分区磁盘创建为一个btrfs,大小为磁盘1+磁盘2
btrfs filesystem show:查看系统中所有btrfs
blkid /dev/sde:查看磁盘sde信息
mount [-t btrfs] /dev/sde|sdf /data:挂载、卸载可选btrfs系统下任意一个设备
启用压缩
mount -o compress=lzo|zlib:选择压缩类型挂载
扩展、缩减文件系统大小
btrfs filesystem resize +|-5G /挂载点
btrfs filesystem resize max /挂载点
已有btrfs添加、移除空间
btrfs device add /dev/sdg /挂载点
btrfs device delete /dev/sdg /挂载点:数据自动迁移
修改数据、元数据存储类型
btrfs balance start -dconvert=raid# /挂载点
btrfs balance start -mconvert=raid# /挂载点
-d为数据,-m为元数据,raid级别需确认磁盘个数
子卷管理
btrfs subvolume list /挂载点:查看文件系统子卷信息
btrfs subvolume create /挂载点/子卷名:创建子卷
mount -o subvol=子卷名 /btrfs里任一个sd# /mnt:挂载子卷
btrfs subvolume show /子卷挂载点:查看子卷信息
btrfs subvolume delete /挂载点/子卷名:删除子卷
快照管理
btrfs subvolume snapshot /子卷名 /挂载点/快照名:创建子卷快照,快照卷和子卷必须在一个卷下
btrfs subvolume delete /挂载点/快照名:删除快照卷
cp --refilnk 文件 文件.bak:对文件创建快照,2个文件必须在一个卷或子卷下
文件系统转换
先umount卸载,再强制检查fsck -f /dev/sdg1
btrfs-convert /dev/sdg1:转换ext4成btrfs
btrfs-convert -r /dev/sdg1:转换btrfs成ext4