环境: 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
[root@localhost ~]# rpm -qa |grep lvm lvm2-2.02.46-8.el5 [root@localhost ~]# pvdisplay [root@localhost ~]#
2,查看磁盘信息
[root@localhost ~]# fdisk -l ====== Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System
3,分区
[root@localhost ~]# 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 1 Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +10G #分区大小 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 #第2个分区 First cylinder (1218-2610, default 1218): Using default value 1218 Last cylinder or +size or +sizeM or +sizeK (1218-2610, default 2610): Using default value 2610 Command (m for help): p #查看分区信息 Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = 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 Linux Command (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 b 11 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 auto 1b 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 #修改类型id Partition number (1-4): 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): t Partition number (1-4): 2 Hex 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 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = 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 Command (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查看下磁盘
[root@localhost ~]# fdisk -l ====== Disk /dev/sdb: 21.4 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = 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
[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdb2" successfully created [root@localhost ~]# 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(卷组)
[root@localhost ~]# vgcreate date_vg /dev/sdb1 /dev/sdb2 Volume group "date_vg" successfully created [root@localhost ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "date_vg" using metadata type lvm2 [root@localhost ~]# vgdisplay -v date_vg #查看卷组信息 [root@localhost ~]# vgreduce date_vg /dev/sdb2 #从vg删除pv [root@localhost ~]# 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个 [root@localhost ~]# lvcreate -i 2 -I 4 -l 100 -n date01_lv date_vg
#选项L用于指定逻辑卷的大小 #选项n用于指定逻辑卷的名称 [root@localhost ~]# lvcreate -L 10G -n date01_lv date_vg
扩充逻辑卷
#1,扩充到多少G [root@localhost ~]# lvextend -L 18G /dev/date_vg/date01_lv #2,扩充多少G [root@localhost ~]# lvextend -L +5G /dev/date_vg/date01_lv #注意,扩充的大小应该小于卷组的大小
创建文件系统
[root@localhost ~]# mkfs.ext3 /dev/date_vg/date01_lv/ [root@localhost ~]# mkdir /webdate/ [root@localhost ~]# mount /dev/date_vg/date01_lv/ /webdate/
为了能在系统启动时自动挂载逻辑卷,可以在配置文件/etc/fstab的最后加入以下内容: /dev/date_vg/date01_lv/ /webdate/ ext3 defaults 0 2
在线扩充文件系统
如果使用lvextend改变了磁盘大小,应该用resize2fs进行在线扩充
注意:命令resize2fs只能用于调整ext2、ext3文件系统,如果逻辑卷使用的是其他文件系统,就需要参阅相关文档了解具体的命令
[root@localhost ~]# lvextend -L +2G /dev/date_vg/date01_lv [root@localhost ~]# resize2fs /dev/date_vg/date01_lv [root@localhost ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/sda2 48G 2.3G 43G 6% / /dev/sda1 289M 16M 258M 6% /boot tmpfs 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用于指定快照卷的名称 [root@localhost ~]# lvcreate -L 2G -s -n datebak /dev/date_vg/date01_lv/
快照卷创建完成后,就可以挂载并备份其中的数据文件了。
(2)完成备份之后,可以使用以下命令卸载并删除快照卷:
[root@localhost ~]# umount /dev/date_vg/datebak/ [root@localhost ~]# lvremove /dev/date_vg/datebak/
原文:http://my.oschina.net/harlanblog/blog/396372