raid0 条带化 chunk最小写入单位 至少2块盘 空间大小 单块磁盘大小*n
raid1 镜像 1/n 读性能提升,写入比单块盘慢 空间始终是一块盘的大小 容错率高 可以坏 n-1块盘
raid10 容错高于raid01 但空间损失更多,读写性能 提升 造价高。
raid4
创建 raid ,在磁盘里创建
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}
# fdisk /dev/md0可进行分区
# mkfs.ext4 /dev/md0格式化
# mkdir /mnt/raid5 创建目录
# mount /dev/md-0 挂载
**********************************
先添加硬盘,在分区里创建raid
#fdisk /dev/sdc 分区
#mkfs.ext4 /dev/sdc格式化
#mdadm -C /dev/md2 -a yes -l 1 -n 2 -x 1 /dev/sdc{1,2,3}创建
#lsblk
#mkdir /mnt/raid1
#mount /mnt/raid1
mdadm -C /dev/md1 -a yes -l 0 -n 2 -c 1M /dev/sdf{1,2}
-C –create /dev/mdX 创建 名为mdX 的raid
-a yes 当没有所有的/dev/mdX 设备时,自动创建该设备
-l –level n 所要创建的raid等级
-n n 该raid的数据盘有多少个成员
-x n 该raid的热备盘有多少个 raid0 不支R持-x
-c 值 指定chunk大小,仅限raid0 raid5
/dev/sdx…. 指定raid的成员盘。
fd 转换类型 (为raid)
删除raid
umount
mdadm -D /dev/md2 先查一下,该raid由哪有成员组成
mdadm -S /dev/md2 暂停
mdadm –zero-superblock /dev/sdf4
mdadm –zero-superblock /dev/sdf3
清空/etc/mdadm.conf当中,该raid的信息
mdadm /dev/md0 -f /dev/sdd 模拟将/dev/md0 raid中的sdd坏掉
mdadm /dev/md0 -r /dev/sdd 将/dev/md0 raid中的sdd 拔掉
mdadm /dev/md0 -a /dev/sdd 向/dev/md0 增加设备sdd 如数据盘不够,则加为数据盘,如够,加为热备盘
mdadm -G /dev/md0 -n 6 -a /dev/sdh 将/dev/md0的数据盘设置为6个,并将/dev/sdh加入为数据盘。
mdadm -A /dev/md1 /dev/sdb /dev/sdc 当没有将md1信息保存至mdadm.conf时,只能手动指定raid成员
mdadm -D -s > /etc/mdadm.conf 将所有的raid成员信息保存至mdadm.conf文件
mdadm -D -s /dev/md0 >> /etc/mdadm.conf 仅将md0的信处追加保存至mdadm.conf文件
mdadm -A /dev/md1 从/etc/mdadm.conf中读取成员信息,并仅激活md1
mdadm -A -s 从/etc/mdadm.conf中读取成员信息,并激活所有的raid
练习:
1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录 /etc/fstab
#mdadm -C /dev/md2 -l 1 -n 2 -x 1 /dev/sdc{1,2,3}
#mkdir /mnt/backup
#vim /etc/fstab
/dev/md2 /mnt/backup ext4 defaults 0 0
2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录
-n 3 -c 256k
空间大小 3-1
#mdadm -C /dev/md3 -a yes -l 5 -n 3 -c 256k /dev/sda{10..12}
#mdadm -Ds > /etc/mdadm.conf 将显示的信息导入文件中
#mkfs.ext4 /dev/md3
#mkdir /mydata
#vim /etc/fstab
/dev/md3 /backup ext4 defaults 0 0
逻辑卷
/dev/dm-1 (1000) :0-900 /dev/sda1 (200-1100)
901 1000 /dev/sda1 (1300-1400)
/dev/vg0/lv0 –> /dev/dm-0
LVM(前提是已经创建过raid)
pvcreate /dev/md0p1 /dev/md1 创建pv,物理卷
pvremove /dev/md0p1
vgcreate vgmage26 /dev/md0p1 /dev/md1 创建vg,卷组
-s 8M 指定PE大小,默认4M
vgchange -s 8M 更改PE大小 #vgchange -s 8M vgmage26
vgreduce vgmage26 /dev/md1 在vg内移除pv
vgextend vgmage26 /dev/md1 在vgmage26下增加/扩展一个/dev/md1
vgremove vgmage26 删除一个vg
lvcreat -l -n +逻辑卷名 创建逻辑卷 # lvcreate -l 10 -n lvmage26_01 vgmage26
-L 指定大小
# mkfs.ext4 /dev/vgmage26/lvmage26_01 格式化
# mkdir /mnt/lvmage26_01
# mount /dev/vgmage26/lvmage26_01 /mnt/lvmage26_01/
# cd /mnt/lvmage26_01
# cp /etc/*.conf .
查看逻辑卷的剩余空间:
pvs
pvs /dev/md0p1
pvdisplay
pvdisplay /dev/md0p1
vgs
vgs vgmage26
vgdisplay
vgdislplay vgmage26
实验:扩展逻辑卷
1.先检查需要扩展的大小,VG是否有足够可用空间 vgs;vgdislplay
如果不够则 创建pv 扩展卷组
pvcreate /dev/md2
vgextend vgmage26 /dev/md2
2.如足够则扩展逻辑卷大小
lvextend -L 1G/+1G /dev/vgmage26/lvmage26_01 # lvextend -L 500M /dev/vg 扩展到500M +500M是扩展到500M
lvextend -l +100%FREE /dev/vgmage26/lvmage26_01 它并没有立即生效,需要把新扩展逻辑卷增加用到文件中才能
3.扩展文件系统大小
resize2fs /dev/vgmage26/lvmage26_01
或
resize2fs /dev/vgmage26/lvmage26_01 500M 只增加到500M的文件系统,并格式化
如果是xfs文件系统 用xfs_growfs
xfs_growfs /dev/vg01/lv01
lvextend -L +500M -r /dev/vgmage26/lvmage26_01 可在lvextend 时加-r 直接一步到位,先扩展逻辑卷大小后直接增加文件系统大小
实验:减小逻辑卷大小 仅支持Ext文件系统
1.umount /mnt/lvmage26_01
2.e2fsck -f /dev/vgmage26/lvmage26_01 扫描修复
3.resize2fs /dev/vgmage26/lvmage26_01 300M
4.lvreduce -L 300M /dev/vgmage26/lvmage26_01
5.mount
# mount /dev/vgmage26/lvmage26_01 /mnt/lvmage26_01/
实验:将某块盘从LVM中分离出来
1.先确保数据不在这块PV上
用pvs查看
2.如果在这块PV上,则将数据转移到同卷组的其他PV上
pvmove /dev/pv1名 /dev/pv2名(可以不指定)# pvmove /dev/md126p1 /dev/sdg 将所有数据移至/dev/sdg
3.将pv从Vg中移出
vgreduce vg名 /dev/pv名 # vgreduce vgmage26 /dev/md126p1
4.删除该盘的pv属性 # pvremove vgmage26 /dev/md126p1
pvremove /dev/pv名
// 准备
在添加一个2g的硬盘
# pvcreate /dev/sdg 创建pv
# vgcreate /dev/sdg 创建vg
# vgextend vgmage26 /dev/sdg 扩展
# pvs 查看数据在哪个pv上再进行如上操作
实验:将LVM迁移到其他主机
1.将数据移到目标磁盘对应的PV上。(该磁盘不要有其他与该PV无关的分区)
pvmove /dev/pv1名 /dev/pv2名
vgreduce vg名 /dev/pv(多余) 移动除要移动的PV以外的其他PV
vgreduce vg02 /dev/md126p1 /dev/md127
2.确保要迁移的VG名与目的系统没有同名的VG
vgrename vgmage26 vg02
lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必须)
3.umount /mnt/lvmage26_01/
4.vgchange -an vg02 禁用VG上的所有LV 时vg成非激活状态 1.# vgchange -ay vg02 vg为激活状态
5.vgexport vg名 导出 1.#vgimport vg02取消被保护状态
关机(如果支持热插排,则不用关机),拔硬盘,插到目标主机上。# poweroff centos6操作结束
复制新建2G硬盘的路径,在centos7里边添加现有硬盘在centos6里复制路径查找,添加进去
在centos7中操作
6.lsblk 查看没有更新 echo‘- – -’/sys/class/scsi_host/host2/scan
7.pvscan
vgscan
lvscan
vgimport vg名
vgchange -ay vg名
8.vgimport vg02 看导入成功没
9.mount /dev/vg名/lv名 /mnt/
#mount /dev/vg02/lv01 /mnt/lv02
#cd /mnt/lv02 查看数据是否成功迁移
LVM快照
lvcreate -L 10M -n lvmage-snap -s /dev/vgmage/lvmage 创建快照
lvcreate -L 10M -n lvmage-snap -s -p r /dev/vgmage/lvmage 创建只读快照
lvremove /dev/vgmage/lvmage-snap 删除快照
lvextend -L +300M/300M /dev/vgmage/lvmage-snap 快照扩展
使用快照恢复源逻辑卷
umount 源和快照
lvconvert –merge 快照名 (该操作成功会删除快照)
mount 源
对有快照的逻辑卷进行扩展
1.umount 源和快照
2.lvchange -an 源 将源及快照设置为inactive
3.lvextend -L -r 200M 源名字 (-r不一定能用)
4.e2fsck -f 扫描
5.resize2fs/xfs_growfs …
建议,直接删除快照,可以在线扩展逻辑卷,最后重建快照
sed
-n:不输出模式空间内容到屏幕,即不自动打印
-e: 多点编辑,对每行处理时,可以有多个Script
-f: 把Script写到文件当中,在执行sed时-f 指定文件路径,如果是多个Script,换行写
-r: 支持扩展的正则表达式
-i: 直接将处理的结果写入文件
-i文件名 在将处理的结果写入文件之前备份一份
script
地址定界:
(1) 不给地址:对全文进行处理
sed -n ‘p’ 文件
(2) 单地址:
: 指定的行
sed -n ‘2p’ 文件
/pattern/:被此处模式所能够匹配到的每一行
sed -n ‘/linux/p’文件
(3) 地址范围:
,#
sed -n ‘2,3p’
,+#
sed -n ‘2,+1p’
/pat1/,/pat2/
sed -n ‘/redhat/,/linux/p’
,/pat1/
sed -n ‘2,/linux/p’
(4) ~:步进
sed -n ‘1~2p’ 只打印奇数行
sed -n ‘2~2p’ 只打印偶数行
编辑命令
d: 删除模式空间匹配的行,并立即启用下一轮循环
sed ‘2d’ pets
p:打印当前模式空间内容,追加到默认输出之后
sed ‘2p’ pets
a []text:在指定行后面追加文本,支持使用\n实现多行追加
sed ‘2a\123\n456\n789’ pets
i []text:在行前面插入文本
sed ‘2i\123\n456\n789’ pets
c []text:替换行为单行或多行文本
sed ‘2c\123\n456\n789’ pets
w /path/somefile: 保存模式匹配的行至指定文件
sed -n ‘3w /root/3.file’ pets
r /path/somefile:读取指定文件的文本至模式空间中匹配到的行后
sed ‘3r /root/mage.txt’ pets
=: 为模式空间中的行打印行号
sed ‘=’ pets.bak
!:模式空间中匹配行取反处理
sed -n ‘2!p’ pets
s///:查找替换,支持使用其它分隔符,s@@@,s###替换标记:
g: 行内全局替换
sed ‘s/dog/cat/g’ pets
1、删除/etc/fstab文件中所有以#开头,后面至少跟一个空
白字符的行的行首的#和空白字符
sed -r “/^#[[:space:]]/s/^#[[:space:]]+([^[:space:]])/\1/” fstab
sed -r ‘s/^#[[:space:]]+//’ fstab
3、在centos6系统/root/install.log每一行行首增加#号
sed ‘s/^/#/g’ /root/install.log
4、在/etc/fstab文件中不以#开头的行的行首增加#号
cat /etc/fstab |sed ‘s/^[^#]/#&/’
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
echo /etc/sysconfig/network-scripts/ |sed -r ‘s#(^/.*/)([^/].*/?$)#a:\1\nb:\2#’
6、利用sed 取出ifconfig命令中本机的IPv4地址
ifconfig eth0 |sed -n ‘2p’ |sed ‘s#^.addr:##g’ |sed ‘s# Bcas.$##g’
ifconfig eth0 |sed -n -e ‘2s#^.addr:##g’ -e ‘s# Bcas.$##gp’
sed -n ‘n;p’ FILE 显示偶数行
sed ‘1!G;h;$!d’ FILE 倒序显示
sed -n ‘1!G;h;$p’ 倒序显示
seq 7 |sed ‘n;d’ 显示奇数
sed ‘N;D’ 显示最后一行
sed ‘$!d’ 显示最后一行
sed ‘G’ 每行之间加空行
sed ‘g’ 把每行内容替换成空行
sed ‘/^$/d;G’ 确保每一行下面都有一个空行
原创文章,作者:MOMO,如若转载,请注明出处:http://www.178linux.com/85455