学习笔记(12)

注意: 在填充512字节的时候注意bs的大小要是用1字节来填充 dd if=/dev/zero of=/dev/sdb bs=1 count=2 skip=510 seek=510

删除硬盘前最好在关机的状态下来执行,虚拟机模拟环境(Vmware)也最好这样做

补充:创建pv既可以分区也可以磁盘

1.创建软raid(4块磁盘同一做文件系统)

  fdisk 修改t 然后选择1(指定修改哪个分区,1为分区号)为需要将分区的id修改为fd 做raid

  dd if=/dev/sdb of=/dev/sdc bs=1 count=66 skip=446 seek=446 (要包括最后两个字节的55aa,此标记是表示该磁盘是否划分分区,没有55aa,lsblk查看不到分区信息) 需要跳过bootloader 引导加载器,因为添加的磁盘不作为引导盘来使用,需要跳过446字节

  partx -a /dev/sdc (centos6 中) centos7 使用partprobe ,不同步的话使用lsblk不能查看到刚刚添加的分区

  partx -d --nr 1 /dev/sdc 删除时用,注意sdc后面没数字,因为前面有数字1了,可以写范围的1-3 分区号

  (清文件系统 dd if=/dev/zero of=/dev/sdb1,不需要完全填充0,只需要填充superblock块即可,稍等片刻即可)

  mdadm -C /dev/md0 -a yes -l5 -c32 -n3 -x1  /dev/sd{b1,c1,d,e1}  -l选项是指定chunk大小为32K,要按顺序定义的写,最后一个是x1(备用硬盘)e1

  mdadm -D /dev/md0

  blkid    可以查看到raid的UUID信息

  blkid /dev/md0   没有任何输出信息,因为没有创建文件系统,使用raid模式,需要全部同一安装文件系统

  mkfs.ext4 /dev/md0 -L raid5

  blkid /dev/md0 创建完操作系统之后就可以查看到md0的文件系统信息


  vim /etc/fstab

  :r!blkid /dev/md0 

  UUID=a7998bb6-6912-40d0-89fa-5be633ad3477  /mnt/raid        ext4   defaults       0 0


  mdadm -Ds /dev/md0 >/etc/mdadm.conf 防止重启raid设备后就不会提示找不到配置文件

   

  测试Raid磁盘的写入速度

  dd if=/dev/zero of=/mnt/raid/f1 bs=1M count=1024

  

  补充 dd if=/dev/zero of=/mnt/raid/f2 bs=1M count=1024 conv=fdatasync 写入磁盘才结束,而不是写入buffer算结束


  读取速度有可能是因为buffer,cache中有数据导致,可以使用free -m 来查看buffer cache来

  测试软Raid的读取速度

  dd if=/root/f1 of=/dev/null 测试读取速度


  umount /mnt/raid (执行下面的-S命令先要umount)

  mdadm -S /dev/md0 停用raid

  mdadm -A /dev/md0 启用raid

  [root@centos7 ~]#mdadm -A /dev/md0       没有创建配置文件会导致的问题

  mdadm: /dev/md0 not identified in config file.

  mdadm -D /dev/md0 查看raid状态


  mdadm /dev/md0 -f /dev/sdd1 模拟损坏磁盘,备用磁盘立即顶替损坏的磁盘

  [root@centos6 ~]# mdadm /dev/md0 -f /dev/sdb1

  mdadm: set /dev/sdb1 faulty in /dev/md0          提示信息给的不太友好,我还以为我的命令有问题呢?!其实是正常的提示信息


  查看构建过程: watch -n 1 mdadm -D /dev/md0  每一秒刷新一次,可查看备用盘接替坏盘过程的百分比


  mdadm -D /dev/md0信息截取:

  Number   Major   Minor   RaidDevice State

   3       8       81        0      spare rebuilding   /dev/sdf1

   1       8       49        1      active sync   /dev/sdd1

   4       8       65        2      active sync   /dev/sde1


   0       8       17        -      faulty   /dev/sdb1


  mdadm /dev/md0 -r /dev/sdd1 从raid中移除设备sdd1 

  mdadm /dev/md0 -a /dev/sdd1 从raid中添加回sdd1 


  parted 命令的使用风格,这种写法不多。


  虚拟机vm中拆除备用盘和raid盘中一块来查看容错性

  mdadm -D /dev/md0    state: degraded 降级使用,需要计算损坏硬盘的数据,所以要耗费系统的性能,因为CPU要通过计算算出出错硬盘的数据

  state: clean 为正常

2.作业: 实现raid10  下面的是两个1 两个1  然后构成raid0

  mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd{b,c} -c32可以指定chunk大小

  mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd{d,e}

  mdadm -C /dev/md0 -a yes -l0 -n2 /dev/md{0,1}

  或者

  mdadm -C /dev/md0 -a yes -l10 -n4 /dev/sd{b,c,d,e} 直接创建raid10


3.添加raid成员 

  分区不同步使用lsblk查看不到分区 centos6 使用partx 7使用 partprobe

  mdadm -G /dev/md0 -n4 -a /dev/sdb3  新增加/dev/sdb3分区

  mdadm -D /dev/md0  查看/dev/md0的详细信息(mdadm /dev/md0 查看/dev/md0的简单信息)

  df -h 查看不到

  resize2fs /dev/md0 同步所有文件系统空间 (只适用ext系列)   这个命令有延迟,第一次没成功,第二次成功了


**************************************************************************  

[root@centos6 ~]# resize2fs /dev/md0

resize2fs 1.41.12 (17-May-2010)

The filesystem is already 5236992 blocks long.  Nothing to do!


[root@centos6 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       9.5G  4.2G  4.9G  46% /

tmpfs           491M  224K  491M   1% /dev/shm

/dev/sda1       969M   35M  885M   4% /boot

/dev/sda2        48G   52M   46G   1% /data

/dev/sr0        3.7G  3.7G     0 100% /media/CentOS_6.9_Final

/dev/md0         20G   44M   19G   1% /mnt/raid5

[root@centos6 ~]# resize2fs /dev/md0

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/md0 is mounted on /mnt/raid5; on-line resizing required

old desc_blocks = 2, new_desc_blocks = 2

Performing an on-line resize of /dev/md0 to 7855488 (4k) blocks.

The filesystem on /dev/md0 is now 7855488 blocks long.


[root@centos6 ~]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       9.5G  4.2G  4.9G  46% /

tmpfs           491M  224K  491M   1% /dev/shm

/dev/sda1       969M   35M  885M   4% /boot

/dev/sda2        48G   52M   46G   1% /data

/dev/sr0        3.7G  3.7G     0 100% /media/CentOS_6.9_Final

/dev/md0         30G   44M   28G   1% /mnt/raid5

******************************************************************************


  resize2fs /dev/vg0/lv0  同步扩展或缩减文件系统空间(df 查看是否空间是否被同步)  两处使用此命令一种是raid的增减和缩减空间(只能在ext系列文件系统上使用),一种是lvs的增加或缩减空间                                            这个实验还没做

  (没有文件系统无法使用df来查看,所以不创建文件系统的分区使用df 来查看到)

  xfs_growfs /mnt/raid 后面的是挂载点在扩展的时候使用,

  因为xfs系统不能缩减lv,不能使用/dev/md0  xfs系统同步增加或缩减空间中使用  命令作用同步文件系统,统一raid中的所有磁盘分区的文件系统,raid是统一管理文件系统的,所以可以使用同步文件系统的方式来修改新增加磁盘分区的文件系统


4.mdadm -D /dev/md0 (cat/proc/mdstat查看磁盘)

5.删除raid 

  umount /mnt/raid

  删除 /etc/fstab中的挂载信息

  rm -rf /etc/mdadm.conf

  有些命令有延迟 如mdadm -S /dev/md0 ll /dev/md0还可以查看到,过会就不见了

  下次使用作为raid的分区的时候如果有残留的信息,使用blkid可以查看到,清除使用

  mdadm --zero-superblock /dev/sdb1  删除前使用该命令消除残留raid信息,使用blkid 查看会发现raid信息已经没有

  如果分区不可用时,可以直接使用dd if=/dev/zero of=/dev/sdb1 毁坏文件系统即可,不需等待过程全部完成


  补充:

  让系统默认磁盘没有划分分区直接用零设备填充最后的55AA两个字节,dd if=/dev/zero of=/dev/sdb bs=1 count=2 seek=510,过程完成后,可以使用lsblk来查看,会发现分区已经不见。当然也可以使用fdisk的d命令来删除分区 


  fdisk -l /dev/sdc 是从硬盘中查找的分区信息

  lsblk 是从内存中查找的分区信息,若使用lsblk查看不到时,可以使用partprobe(centos7),partx -a /dev/sdc (centos6) 来同步

  

  为不同磁盘创建相同分区可以使用dd命令,主需要填写后面的66字节即可,因为不是引导盘,所以不需要填充前446字节

  dd if=/dev/sdb of=/dev/sdd bs=1 count=66 skip=446 seek=446  注意要使用skip


  df查看到的信息是已经存在文件系统,并且已经挂载使用的

  lsblk查看到的是块设备的信息,包括可以查看到是否划分分区

  fdisk 则可以查看到系统的id号,包括fd(RAID)、82(swap)、83(LINUX)、8e(LVM)


  vi 编辑其中不要忘了使用d0和d$的使用,还有c0和c$的使用


6.pv vg lv 由下至上 记忆顺序 

7.卷组分割单位为PE,为LV分配空间的最小单元

8.fdisk 可以查看到分区id,fdisk -l /dev/sda1 ,因为可以修改吗,所以当然可以查看了。

9. 创建LVM

  pvcreate /dev/sd{a7,c1}

  (超级块中有分区信息,之前的md0有超级块信息 dd干掉超级块信息)

  pvdisplay

  vgs  查看卷组

  vgdisplay  查看卷组

  vgcreate -s 16M vg0 /dev/sd{a7,c1}  16M PE PE是vg的最小单元,在分区中使用的是PE,新磁盘不是

  pvs  列出pvs的简单信息

  pvdisplay 列出pvs的详细信息

  vgs

  vgdisplay

  lvcreate -n lv0 -l 100  vg0(-L 指定容量,-l 指定PE个数) -l更精确 

  补充:lvcreate -n lv0 -L +10G|10G  # +10G 表示增减10G,10G表示增加到10G

  lvs

  lvdisplay


  lvcreate -n lv1 -l 100%free (使用全部空间) vg0

  lvs  


  两个lv的链接,做文件系统时需要指定,挂载的时候同样需要指定,任选其一就可

  /dev/mapper/vg0-lv0

  /dev/vg0/lv1 

  [root@centos7 ~]#ll /dev/vg0/lv0 

  lrwxrwxrwx 1 root root 7 Apr 26 06:42 /dev/vg0/lv0 -> ../dm-0

  [root@centos7 ~]#ll /dev/mapper/vg0-lv0 

  lrwxrwxrwx 1 root root 7 Apr 26 06:42 /dev/mapper/vg0-lv0 -> ../dm-0


  mkfs.ext4 /dev/vg0/lv0          创建文件系统

  mkfs.ext4 /dev/mapper/vg0-lv0    创建文件系统


  测试读写性能

  dd if=/dev/zero of=/mnt/lv0/f2 bs=1M count=500 conv=fdatasync 加上conv=fdatasync选项将数据直接写入磁盘算结束,而不是写入cache算结束


  补充:

  echo '- - -' > /sys/class/scsi_host/host2/scan  用来探测新增加磁盘

  partprobe(centos7)、partx(centos6)是用来识别新增加的分区,和删除分区时的信息,lsblk分区不同步时使用

  partx -a /dev/sdc  centos6增加分区时用来同步分区(是否识别使用lsblk来查看)

  partx -d --nr 1-3 /dev/sdc  centos6 删除1、2、3分区时来同步(自己在使用dd if=/dev/zero of=/dev/sdc bs=1 count=2 seek=510完成以后使用 lsblk发现分区没有消失,使用 partx -d --nr 1 /dev/sdc 后分区消失)

  pvcreate /dev/sdd    创建pv之前可以直接使用整块磁盘而不分区,也可以分区后再创建pv

  vgextend vg0 /dev/sdd1

  pvs

  vgdisplay

  lvdisplay

  lvextend  -L +5G(5G) /dev/vg0/lv0    +5G是加5G  5G是加到5G

  lvs

  df -h

  resize2fs /dev/vg0/lv0  同步扩展或缩减系统空间(df 查看是否空间是否被同步)  两处使用此命令一种是raid的增减和缩减空间,一种是lvs的增加或缩减空间

  主要是针对raid 和lvm 因为是多块组成一个,lvextnd -r 可以直接同步文件系统


  lvextend -r -l +100%FREE /dev/vg0/lv0     -r选项可以直接同步文件系统空间,不需要使用resize2fs /dev/vg0/lv0来同步


  lvm缩减空间前要先备份


  xfs的文件系统不能缩减空间,可以扩展空间,ext系列文件系统可以缩减空间和扩展空间


  注意:

  扩展lv需要先扩展逻辑卷LVM,再扩展文件系统(resize2fs 在不使用lvextend -r选项的时候)

  但是缩减LVM需要先缩减文件系统,在缩减逻辑卷空间


  1.umount /mnt/lv0  卸载

  2.fsck -f /dev/vg0/lv0 因为resize2fs之前要提示检测文件系统,必须给出-f选项

  3.resize2fs /dev/vg0/lv0 10G     要扩展文件系统空间的时候不需要指定大小

  4.lvreudce -L 10G /dev/vg0/lv0    缩减逻辑卷

  5.mount -a      重新挂载


  移除lvm中的硬盘

  1.pvmove /dev/sdd 将当前pv的数据移动到卷组中的其他的pv中,移动到那些成员由系统自动决定,不需要认为指定

  2.vgredunce vg0 /dev/sdd  从卷组中移除sdd

  3.pvremove /dev/sdd 恢复成普通硬盘

10.vg 、lv修改名字(用于迁移逻辑卷lvm时与目标服务器的lvm名字冲突)

   vgrename vg0 centos6vg0 

   vgdisplay

   lvrename /dev/centos6vg0/lv0 /dev/centos6vg0/cento6lv0

   lvrename /dev/centos6vg0/lv1 /dev/centos6vg1/cento6lv1

11.迁移逻辑卷,需要将需要移动的lv数据移动到一块硬盘(/dev/sda)上,然后在拆除硬盘安装在另外的服务器上,迁移前要注意不要和目标服务器的lvm名字冲突

   umount /mnt/lv0

   pvmove /dev/sda7  

   vgreduce vg0 /dev/sda7  将/dev/sda7的分区从vg0中移除

   vgchange -an centos6vg0 禁用卷组vg

   lvdisplay

   vgexport centos6vg0 导出卷组vg,将状态设置为导出状态为导出vg做准备

   vgdisplay   查看到状态为导出状态

   pvdisplay   所有的pv也同样处于了导出的状态

   拆虚拟机硬盘,找到指定的硬盘文件,并剪切该文件至目标虚拟机的路径中,添加虚拟机磁盘找到添加现有磁盘

   (运行里写路径找文件很方便,拷贝硬盘文件)

   vgimport cento6vg0   将新增减的磁盘的vg设置为导入状态

   vgdisplay

   lvdisplay

   vgchange -ay centos6vg0 激活卷组,lvm也变为可用状态

   mkdir /mnt/centos6lv0

   mount /dev/centos6vg0/centos6lv0 /mnt/centos6lv0


12.快照先只分配一块空间(速度快),文件修改时才未修改原有文件传进快照空间

13.创建逻辑卷快照

   创建逻辑卷前要先查看一下当前的卷组是否有空间来创建逻辑卷的快照,因为快照使用的空间也是在当前需要创建的快照的卷组中。

   lvcreate -n lv0-snapshot  -s -L 1G -p r /dev/vg0/lv0   -s指定快照选项 -p r 只读方式不可修改快照内容

   lvdisplay

   mkdir /mnt/lv0-snapshot

       挂载完创建的快照后会发现文件与原逻辑卷中的内容相同,其实显示的文件是来自原始的逻辑卷(说明:未修改数据前的快照数据其实是来自源文件,只是为了显示快照已生效)

   快照恢复文件

   umount /mnt/snap

   umount /mnt/centos6lv0

   lvconvert --merge /dev/centos6vg0/centos6lv0   


   xfs 快照

   mount -o nouuid ... 不检查UUID,否则相同UUID报错,因为快照的UUID相同


  (快照大小<= 原空间大小即可,只存放修改的数据之前的就文件)

15.删除逻辑卷

   1.先umount

   2.lvremove 删除

16.快照恢复使用后就会被删除

   ext4 系列的文件系统为了保证惊险不被损坏使用-p r 选项,恢复镜像内容使用lvconvert --merge /dev/centos6vg0/centos6lv0 

   xfs 不要加-p r 否则报错

   xfs mount -o nouuid 需要添加该选项 ,ext系列不需要

17.备份mysql数据库的一种手段就是使用lvm快照,cp太慢会有数据修改,可以将备份的数据使用快照恢复cp过程中修改的文件

实验:逻辑卷的快照、迁移逻辑卷


带宽以位为单位,下载的文件是以字节为单位,所以要除以8

18.混杂模式的网卡 即便不是自己的报文也会接收

19.交换机里面自动做交换,不需要使用交叉线

   两台电脑使用双绞线相连要将13和26两条线对调

20.T568B线序: 橙白  橙  绿白 蓝  蓝白 绿  棕白 棕

   T568A线序(1、3和2、6对调): 绿白  绿 橙白 蓝  蓝白 橙  棕白 棕

21.MBR数据在硬盘的硬盘的0柱面、0磁头、0扇区(第一个扇区),DPT(Disk partition table),分区有效标志 55AA


猜你喜欢

转载自blog.51cto.com/9980200/2108238