標籤:
環境: centos
前期瞭解:
最大磁碟問題
1,對lvm2建立的LVM捲來說,容量大小取決於kernel的限制 (當然,還有你的磁碟空間)。
對lvm1建立的LVM捲來說,LVM邏輯卷最大可能容量取決於所用擴充大小。 計算公式是:
65534 * 擴充大小 = 最大邏輯卷大小,預設pe是為4M,範圍是8K-16G,lvm1最大擴充到1PB
65534 * 16GB = 1,048,544 GB
2,對於大於2TB的磁碟,應該用parted來分區(下篇文章將會講解),fdisk只能支援2TB以下的磁碟分割
3,系統所使用的檔案系統需要對你的邏輯卷大小提供支援。 Linux預設檔案系統為Reiserfs,它最大支援16TB空間。
ok,問題已經很清楚了, 由於環境的原因,磁碟並沒有超過2TB,我們這裡將使用fdisk來分區
========================
1,查看系統是否支援LVM, 是否存在PV
[[email protected] ~]# rpm -qa |grep lvmlvm2-2.02.46-8.el5[[email protected] ~]# pvdisplay [[email protected] ~]#
2,查看磁碟資訊
[[email protected] ~]# fdisk -l======Disk /dev/sdb: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System
3,分區
[[email protected] ~]# fdisk /dev/sdb #選擇磁碟The number of cylinders for this disk is set to 2610.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK)Command (m for help): n #建立分區Command action e extended p primary partition (1-4)p #選擇建立主要磁碟分割Partition number (1-4): 1 #第一個分區First cylinder (1-2610, default 1): Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +10G #分區大小Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 2 #第2個分區First cylinder (1218-2610, default 1218): Using default value 1218Last cylinder or +size or +sizeM or +sizeK (1218-2610, default 2610): Using default value 2610Command (m for help): p #查看分區資訊Disk /dev/sdb: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sdb1 1 1217 9775521 83 Linux #id類型為83,我們需要修改成LVM類型id/dev/sdb2 1218 2610 11189272+ 83 LinuxCommand (m for help): l #查看類型代碼 0 Empty 1e Hidden W95 FAT1 80 Old Minix bf Solaris 1 FAT12 24 NEC DOS 81 Minix / old Lin c1 DRDOS/sec (FAT- 2 XENIX root 39 Plan 9 82 Linux swap / So c4 DRDOS/sec (FAT- 3 XENIX usr 3c PartitionMagic 83 Linux c6 DRDOS/sec (FAT- 4 FAT16 <32M 40 Venix 80286 84 OS/2 hidden C: c7 Syrinx 5 Extended 41 PPC PReP Boot 85 Linux extended da Non-FS data 6 FAT16 42 SFS 86 NTFS volume set db CP/M / CTOS / . 7 HPFS/NTFS 4d QNX4.x 87 NTFS volume set de Dell Utility 8 AIX 4e QNX4.x 2nd part 88 Linux plaintext df BootIt 9 AIX bootable 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access a OS/2 Boot Manag 50 OnTrack DM 93 Amoeba e3 DOS R/O b W95 FAT32 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M 9f BSD/OS eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT f W95 Ext‘d (LBA) 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/10 OPUS 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b11 Hidden FAT12 56 Golden Bow a7 NeXTSTEP f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a8 Darwin UFS f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor a9 NetBSD f2 DOS secondary 16 Hidden FAT16 63 GNU HURD or Sys ab Darwin boot fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT Command (m for help): t #修改類型idPartition number (1-4): 1Hex code (type L to list codes): 8eChanged system type of partition 1 to 8e (Linux LVM)Command (m for help): tPartition number (1-4): 2Hex code (type L to list codes): 8e Changed system type of partition 2 to 8e (Linux LVM)Command (m for help): p #再次查看Disk /dev/sdb: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sdb1 1 1217 9775521 8e Linux LVM #已經更改/dev/sdb2 1218 2610 11189272+ 8e Linux LVMCommand (m for help): w #儲存退出The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
上面我們把磁碟sdb分成2個主要磁碟分割,如果不需要建立lvm,只是掛載一個新磁碟使用,就不需要修改成lvm的id,fdisk後,格式化分區後,直接掛載就可以使用了, 用fdisk -l查看下磁碟
[[email protected] ~]# fdisk -l======Disk /dev/sdb: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sdb1 1 1217 9775521 8e Linux LVM/dev/sdb2 1218 2610 11189272+ 8e Linux LVM
2,建立PV,開頭我們已經查過了, 系統中並不存在pv,直接建立pv
[[email protected] ~]# pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created[[email protected] ~]# pvscan PV /dev/sdb1 lvm2 [9.32 GB] PV /dev/sdb2 lvm2 [10.67 GB] Total: 2 [19.99 GB] / in use: 0 [0 ] / in no VG: 2 [19.99 GB]
3,建立VG(卷組)
[[email protected] ~]# vgcreate date_vg /dev/sdb1 /dev/sdb2 Volume group "date_vg" successfully created[[email protected] ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "date_vg" using metadata type lvm2[[email protected] ~]# vgdisplay -v date_vg #查看卷組資訊[[email protected] ~]# vgreduce date_vg /dev/sdb2 #從vg刪除pv[[email protected] ~]# vgextend date_vg /dev/sdb2 #重新添加 Volume group "date_vg" successfully extended
4,建立LV
建立卷組之後,就可以使用lvcreate命令在其基礎上建立邏輯卷了。在建立邏輯卷之前,還需要規劃邏輯卷的大小(按實際需要劃分)、邏輯卷的模式等。
1、邏輯卷模式
按寫入的方式不同,邏輯卷有如下兩種模式:
線性模式:先寫滿組成線性邏輯卷的第一個物理卷,再向第2個物理卷中寫入資料,以此類推。
交錯模式:寫入資料時交錯地將資料寫入組成邏輯卷的多個物理卷中(寫入方式類似於RAID 0)。採用這種方式建立的邏輯卷將不能在它們所在的物理卷中擴充。速度是快,安全性不高,如果其中一個物理卷出問題, 那就是大麻煩
建立交錯邏輯卷,可以使用如下命令#選項i表示交錯值為2,小於物理卷的個數#選項I(大寫字母i)表示指定邏輯卷的塊大小,本例中為4MB#選項l(小寫字母L)表示塊數量,本例中表示塊數量為100個[[email protected] ~]# lvcreate -i 2 -I 4 -l 100 -n date01_lv date_vg
#選項L用於指定邏輯卷的大小#選項n用於指定邏輯卷的名稱[[email protected] ~]# lvcreate -L 10G -n date01_lv date_vg
擴充邏輯卷
#1,擴充到多少G[[email protected] ~]# lvextend -L 18G /dev/date_vg/date01_lv #2,擴充多少G[[email protected] ~]# lvextend -L +5G /dev/date_vg/date01_lv #注意,擴充的大小應該小於卷組的大小
建立檔案系統
[[email protected] ~]# mkfs.ext3 /dev/date_vg/date01_lv/[[email protected] ~]# mkdir /webdate/[[email protected] ~]# mount /dev/date_vg/date01_lv/ /webdate/
為了能在系統啟動時自動掛載邏輯卷,可以在設定檔/etc/fstab的最後加入以下內容:/dev/date_vg/date01_lv/ /webdate/ ext3 defaults 0 2
線上擴充檔案系統
如果使用lvextend改變了磁碟大小,應該用resize2fs進行線上擴充
注意:命令resize2fs只能用於調整ext2、ext3檔案系統,如果邏輯卷使用的是其他檔案系統,就需要參閱相關文檔瞭解具體的命令
[[email protected] ~]# lvextend -L +2G /dev/date_vg/date01_lv [[email protected] ~]# resize2fs /dev/date_vg/date01_lv [[email protected] ~]# df -lhFilesystem Size Used Avail Use% Mounted on/dev/sda2 48G 2.3G 43G 6% //dev/sda1 289M 16M 258M 6% /boottmpfs 252M 0 252M 0% /dev/shm/dev/mapper/date_vg-date01_lv 17G 170M 16G 2% /webdate
邏輯卷快照
對資料庫檔案進行備份時,由於資料庫處於工作狀態,因此不停地寫入、刪除資料庫中的資訊,會造成備份後的資料前後不一致。這時可以使用快照(snapshot)。
建立邏輯卷快照與建立邏輯卷一樣,都使用lvcreate命令。
(1)建立快照卷之前,需要確認原始卷的大小,因為建立的快照卷通常都應該比原始卷大(1.1倍至1.2倍之間即可)。
#使用lvcreate命令建立名為db_snapshot的快照卷#選項L用於指定快照卷的大小#選項s表示要建立的是快照卷#選項n用於指定快照卷的名稱[[email protected] ~]# lvcreate -L 2G -s -n datebak /dev/date_vg/date01_lv/
快照卷建立完成後,就可以掛載並備份其中的資料檔案了。
(2)完成備份之後,可以使用以下命令卸載並刪除快照卷:
[[email protected] ~]# umount /dev/date_vg/datebak/[[email protected] ~]# lvremove /dev/date_vg/datebak/
Centos LVM擴充磁碟執行個體