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: 復制

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM