raid,lvm,及sed命令的相关使用总结

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} 

raid,lvm,及sed命令的相关使用总结
# fdisk /dev/md0可进行分区
# mkfs.ext4 /dev/md0格式化
# mkdir /mnt/raid5 创建目录
# mount /dev/md-0 挂载
**********************************
先添加硬盘,在分区里创建raid
#fdisk /dev/sdc 分区

raid,lvm,及sed命令的相关使用总结
#mkfs.ext4 /dev/sdc格式化

raid,lvm,及sed命令的相关使用总结
raid,lvm,及sed命令的相关使用总结

#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

raid,lvm,及sed命令的相关使用总结

3、在centos6系统/root/install.log每一行行首增加#号

sed ‘s/^/#/g’ /root/install.log

raid,lvm,及sed命令的相关使用总结

4、在/etc/fstab文件中不以#开头的行的行首增加#号
cat /etc/fstab |sed  ‘s/^[^#]/#&/’
raid,lvm,及sed命令的相关使用总结
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名

echo /etc/sysconfig/network-scripts/ |sed -r  ‘s#(^/.*/)([^/].*/?$)#a:\1\nb:\2#’

raid,lvm,及sed命令的相关使用总结

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’
raid,lvm,及sed命令的相关使用总结
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

(0)
上一篇 2017-08-26 19:39
下一篇 2017-08-26 21:03

相关推荐

  • 运维学习笔记-Puppet之Hiera初探

    为什么使用Hiera? Puppet中的manifest同时包含静态的代码(判断/循环逻辑,依赖关系,类定义,资源类型定义等等)和动态的数据(类声明时的参数值和资源声明时的属性值)。说代码是静态的是因为如果在设计阶段考虑比较全面,代码写成之后是很少变化的。但是数据要根据具体情况赋予不同的值。如果manifest设计的不是很灵活,比如某些数据被固化(hardc…

    Linux干货 2016-07-07
  • 马哥教育网络班21期第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 # cp -r /etc/skel/ /home/tuser1 # chmod -R go= /home/tuser1/ 2、编辑/etc/gr…

    Linux干货 2016-07-27
  • Varnish的配置与部署

          Varnish与一般服务器软件类似,分为master(management)进程和child(worker,主要做cache的工作)进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程进行工作,主要包括一些管理线程和很多woker线程。 va…

    2017-07-27
  • 马哥教育网络班25期+第一周课程练习

    一、计算机的组成及功能     现代计算机的结构:冯诺依曼结构体系(储存程序,顺序执行),由20世纪30年代中期,美国科学家冯·诺依曼提出     冯.诺依曼结构处理器具有以下几个特点:     1:必须有一个存储器;2:必须有一个控制器;3:必须有一个运算器…

    Linux干货 2016-11-28
  • linux命令格式和常用命令

    Linxu命令使用格式 ~]#COMMAND OPTIONS ARGUMENTS CMMMAND:发起一命令:请求内核将某个二进制程序运行为一个进程; OPTIONS:指定命令的运行特性; 短选项:-C, 例如-l, -d 注意:有些命令的选项没有-; 如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld 长选项:–word, 例如…

    Linux干货 2018-03-04
  • Linux程序包管理之RPM

    Linux程序包管理之RPM RPM概念 rpm是什么 RPM 是Ret Hat Package Manager(RPM软件包管理器)的缩写,遵循GPL协议,可以运行在各种Linux上,公认的行业标准。 rpm干什么 对于终端用户来说 简化了Linux系统的安装、卸装、更新和升级的过程,用命令完成 对于开发者来说 RPM允许把软件编码包装成源代码和程序包提供…

    Linux干货 2016-11-22