zoukankan      html  css  js  c++  java
  • LVM和RAID

    RAID: 
    	Redundant Arrays of Inexpensive Disks
    	                    Independent
    
    	Berkeley: A case for Redundent Arrays of Inexpensive Disks RAID
    
    		提高IO能力:
    			磁盘并行读写;
    		提高耐用性;
    			磁盘冗余来实现
    
    		级别:多块磁盘组织在一起的工作方式有所不同;
    		RAID实现的方式:
    			外接式磁盘阵列:通过扩展卡提供适配能力
    			内接式RAID:主板集成RAID控制器
    			Software RAID:
    
    	级别:level
    		RAID-0:0, 条带卷,strip; 
    		RAID-1: 1, 镜像卷,mirror;
    		RAID-2
    		..
    		RAID-5:
    		RAID-6
    		RAID10
    		RAID01
    
    		RAID-0: 以条带形式将数据均匀分布在阵列的各个磁盘上;
    			读、写性能提升;
    			可用空间:N*min(S1,S2,...)
    			无容错能力
    			最少磁盘数:2, 2+
    			适用领域:视频生成和编辑、图形编辑,其它需要大的传输带宽的操作;
    
    		RAID-1:以镜像为冗余方式,对虚拟磁盘上的数据做多份拷贝,放在成员磁盘上
    			读性能提升、写性能略有下降;
    			可用空间:1*min(S1,S2,...)
    			有冗余能力
    			最少磁盘数:2, 2+
    			适用领域:财务、金融等高可用、高安全的数据存储环境
    
    		RAID-4:数据交叉存储在2块硬盘中,再由第3块硬盘存储数据的校验码;
    			1101, 0110, 1011
    
    		RAID-5:采用独立存取的阵列方式,校验信息被均匀的分散到阵列的各个磁盘上;
    			读、写性能提升
    			可用空间:(N-1)*min(S1,S2,...)
    			有容错能力:1块磁盘
    			最少磁盘数:3, 3+
    			适用领域:文件服务器、email服务器、web服务器等环境,数据库应用
    		RAID-6:用2块盘做校验盘,校验码存两次;
    			读、写性能提升
    			可用空间:(N-2)*min(S1,S2,...)
    			有容错能力:2块磁盘
    			最少磁盘数:4, 4+
    
    		
    		混合类型
    			RAID-10:结合RAID1和RAID0,先镜像,再条带化;
    				读、写性能提升
    				可用空间:N*min(S1,S2,...)/2
    				有容错能力:每组镜像最多只能坏一块;
    				磁盘数:2n(n>=2)
    				优点:读性能很高,写性能比较好,数据安全性好,允许同时有N个磁盘失效;
    				缺点:利用率只有50%,开销大;
    				适用领域:多用于要求高可用性和高安全性的数据库应用;
    			RAID-01:先分成两组做成RAID-0,再把组成的RAID-0做成RAID-1;不符合常用方法,每一组有一块坏的硬盘可能性大;
    
    			RAID-50、RAID7
    				适用领域:大型数据库服务器、应用服务器、文件服务器等应用;
    			JBOD:Just a Bunch Of Disks
    				功能:将多块磁盘的空间合并一个大的连续空间使用;
    				可用空间:sum(S1+S2+,...)
    
    		常用级别:
    				RAID-0 性能最好
    				RAID-1 冗余度最高,开销高
    				RAID-5
    				RAID-10 开销高
    				RAID-50
    				JBOD
    
    		实现方式:
    			硬件实现方式
    			软件实现方式 
    
    			CentOS 6上的软件RAID的实现:
    				结合内核中的md(multi devices)
    
    				mdadm:模式化的工具
    					命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
    						支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10; 
    
    					模式:
    						创建:-C
    						装配: -A
    						监控: -F
    						管理:-f, -r, -a
    
    					<raiddevice>: /dev/md#
    					<component-devices>: 任意块设备
    
    
    					-C: 创建模式
    						-n #: 使用#个块设备来创建此RAID;
    						-l #:指明要创建的RAID的级别;
    						-a {yes|no}:自动创建目标RAID设备的设备文件;
    						-c CHUNK_SIZE: 指明块大小;(默认512k)
    						-x #: 指明空闲盘的个数;
    
    						例如:创建一个#G可用空间的RAID5;
    							[root@study ~]# mdadm -C /dev/md0 -n 3 -x 1 -a yes -l 5 /dev/sdb{5,6,7,8}
    							[root@study ~]# mke2fs -t ext4 /dev/md0
    							[root@study /]# mount /dev/md0 /mydata
    							[root@study /]# mdadm -D /dev/md0
    
    					-D:显示raid的详细信息;
    						mdadm -D /dev/md#
    
    					管理模式:
    						-f: 标记指定磁盘为损坏;
    						-a: 添加磁盘
    						-r: 移除磁盘
    
    					观察md的状态:
    						cat /proc/mdstat
    
    					-S: 停止md设备
    						mdadm -S /dev/md#
    
    				watch命令:
    					-n #: 刷新间隔,单位是秒;
    
    					watch -n# 'COMMAND'
    
    		练习1:创建一个可用空间为10G的RAID1设备,要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录;
    		练习2:创建一个可用空间为10G的RAID10设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录;
    
    	博客作业:raid各级别特性;
    
    LVM2:
    
    	LVM: Logical Volume Manager, Version: 2
    
    	dm: device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块;
    		/dev/dm-#
    
    	/dev/mapper/VG_NAME-LV_NAME
    		/dev/mapper/vol0-root
    	/dev/VG_NAME/LV_NAME
    		/dev/vol0/root
    
    	pv管理工具:
    		pvs:简要pv信息显示
    		pvdisplay:显示pv的详细信息
    
    		pvcreate /dev/DEVICE: 创建pv
    
    	vg管理工具:
    		vgs
    		vgdisplay
    
    		vgcreate  [-s #[kKmMgGtTpPeE]] VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
    		vgextend  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
    		vgreduce  VolumeGroupName  PhysicalDevicePath [PhysicalDevicePath...]
    			先做pvmove
    
    		vgremove
    
    	lv管理工具:
    		lvs
    		lvdisplay
    
    		lvcreate -L #[mMgGtT] -n NAME VolumeGroup
    
    		lvremove /dev/VG_NAME/LV_NAME
    
    	扩展逻辑卷:
    		# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
    		# resize2fs /dev/VG_NAME/LV_NAME
    
    	缩减逻辑卷:
    		# umount /dev/VG_NAME/LV_NAME
    		# e2fsck -f /dev/VG_NAME/LV_NAME
    		# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
    		# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
    		# mount
    
    	快照:snapshot
    		lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name
    
    	练习1:创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录;
    
    	练习2: 新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录;
    
    	练习3:扩展testlv至7G,要求archlinux用户的文件不能丢失;
    
    	练习4:收缩testlv至3G,要求archlinux用户的文件不能丢失;
    
    	练习5:对testlv创建快照,并尝试基于快照备份数据,验正快照的功能;
    
    
    文件系统挂载使用:
    	挂载光盘设备:
    		光盘设备文件:
    			IDE: /dev/hdc
    			SATA: /dev/sr0
    
    			符号链接文件:
    				/dev/cdrom
    				/dev/cdrw
    				/dev/dvd
    				/dev/dvdrw
    
    		mount -r /dev/cdrom /media/cdrom
    		umount /dev/cdrom
    
    	dd命令:convert and copy a file
    		用法:
    			dd if=/PATH/FROM/SRC of=/PATH/TO/DEST 
    				bs=#:block size, 复制单元大小;
    				count=#:复制多少个bs;
    
    			磁盘拷贝:
    				dd if=/dev/sda of=/dev/sdb
    
    			备份MBR
    				dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
    
    			破坏MBR中的bootloader:
    				dd if=/dev/zero of=/dev/sda bs=256 count=1
    
    		两个特殊设备:
    			/dev/null: 数据黑洞;
    			/dev/zero:吐零机;
    
    	博客作业:lvm基本应用,扩展及缩减实现;
    
    回顾:lvm2, dd
    	lvm: 边界动态扩展或收缩;快照;
    		pv --> vg --> lv
    			PE:
    			LE:
    
    	dd: 复制
    

      

  • 相关阅读:
    JavaScript 浮点数处理
    从输入URL到浏览器显示页面发生了什么
    hadoop 编译任意版本的eclipse 插件
    Stm32F103面向对象编程之GPIO
    flume 1.7 安装与使用
    HIVE分组排序问题
    MapReduce实现共同朋友问题
    hadoop项目实战--ETL--(三)实现mysql表到HIVE表的全量导入与增量导入
    hadoop项目实战--ETL--(二)实现自动向mysql中添加数据
    hadoop项目实战--ETL--(一)项目分析
  • 原文地址:https://www.cnblogs.com/liuyuanq/p/10014811.html
Copyright © 2011-2022 走看看