码迷,mamicode.com
首页 > 其他好文 > 详细

Centos LVM扩展磁盘实例

时间:2015-04-05 23:42:22      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:

环境: 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/


Centos LVM扩展磁盘实例

标签:

原文地址:http://my.oschina.net/harlanblog/blog/396372

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!