Chinaunix首页 | 论坛 | 博客
  • 博客访问: 690337
  • 博文数量: 176
  • 博客积分: 4791
  • 博客等级: 上校
  • 技术积分: 1921
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-24 18:47
个人简介

it江湖漂,怎能不挨刀;一朝机器当,看你怎么着!

文章分类

全部博文(176)

文章存档

2014年(2)

2012年(17)

2011年(27)

2010年(18)

2009年(6)

2008年(21)

2007年(43)

2006年(42)

分类: LINUX

2010-04-16 11:08:22


但是从操作系统的角度,您可以用把这些设备配置成逻辑卷,通过逻辑卷划分出固
定卷名的方式来固定您的设备。

做法如下

创建逻辑卷会损毁物理卷上的原有数据,所以请您在执行上面操作的时候先备份
/dev/sda /dev/sdb /dev/sdc 上的有用数据。

假设您从lun段划分 /dev/sda /dev/sdb /dev/sdc 出来,您要把这三块设备做成
逻辑卷,那么您现创建物理卷

# pvcreate /dev/sda
# pvcreate /dev/sdb
# pvcreate /dev/sdc

创建卷组
# vgcreate vg0 /dev/sda /dev/sdb /dev/sdc
卷组 vg0 的容量为 sda sdb sdc 之和

创建逻辑卷
# lvcreate -L 10G -n for_oracle vg0

这样您就在卷组 vg0 上创建了一个名为 for_oracle ,大小为 10G 的逻辑卷设
备。这样您就可以按照您的需求,在 /dev/vg0/for_oracle 上创建 ocfs 文件系
统或者 ext3 文件系统了。

如果您需要多个逻辑卷设备,您可以按照上面方式用 lvcreate 命令多次创建。








创建物理卷的命令为pvcreate

  安装LVM
  首先肯定系统中是否安装了lvm工具:
  [root@www root]# rpm -qa|grep lvm
lvm-1.0.3-4
  如果命令成果输入相似于上例,那么解释系统已经安装了LVM管理工具;如果命令没有输出则阐明没有安装LVM管理工具,则需要从网络下载或者从光盘装 LVM rpm工具包。
  安装了LVM的RPM软件包以后,要使用LVM还需要配置内核支撑LVM。RedHat默认内核是支持LVM的,如果需要重新编译内核,则需要在配置内核 时,进入Multi-device Support (RAID and LVM)子菜单,选中以下两个选项:
Multiple devices driver support (RAID and LVM)
  <*> Logical volume manager (LVM) Support

  然后重新编译内核,即可将LVM的支撑添加到新内核中。
  为了使用LVM,要确保在系统启动时激活LVM,荣幸的是在RedHat7.0以后的版本,体系启动脚本已经具有对激活LVM的支撑,在/etc /rc.d/rc.sysinit中有以下内容:
# LVM initialization
if [ -e /proc/lvm -a -x /sbin/vgchange -a -f /etc/lvmtab ]; then
$"Setting up Logical Volume Management:"?action /sbin/vgscan && /sbin/vgchange -a y
fi
  其中要害是两个命令,vgscan命令实现扫描所有磁盘得到卷组信息,并创建文件卷组数据文件/etc/lvmtab和/etc/lvmtab.d /*;vgchange -a y命令激活系统所有卷组。


创建和管理LVM
要创立一个LVM体系,一般须要经过以下 步骤:
1、 创建分区
使用分区工具(如:fdisk等)创立LVM分区,方式和创建其ta一般分区的方法是一样的,区别仅仅是LVM的分区类型为8e。
2、 创建物理卷
  创建物理卷的命令为pvcreate,应用该命令将希望添加到卷组的所有分区或者磁盘创建为物理卷。将整个磁盘创建为物理卷的命令为:
# pvcreate /dev/hdb
将单个分区创建为物理卷的命令为:
# pvcreate /dev/hda5
3、 创建卷组
  创建卷组的命令为vgcreate,将使用pvcreate树立的物理卷创立为一个完全的卷组:
    # vgcreate web_document /dev/hda5 /dev/hdb
  vgcreate命令第一个参数是指定该卷组的逻辑名:web_document。后面参数是指定希望添加到该卷组的所有分区和磁盘。vgcreate在 创建卷组 web_document 以外,还设置使用大小为4 MB的PE(默以为4MB),这表现卷组上创建的所有逻辑卷都以 4 MB 为增量单位来进行扩充或缩减。由于内核原由,PE大小决议了逻辑卷的最大大小,4 MB 的PE抉择了单个逻辑卷最大容量为 256 GB,若希望使用大于256G的逻辑卷则创建卷组时指定更大的PE。PE大小范畴为8 KB 到 512 MB,并且必需总是 2 的倍数(使用-s指定,具体请参考man vgcreate)。
4、 激活卷组
  为了立即使用卷组而不是重新启动系统,可以使用vgchange来激活卷组:
    # vgchange -a y web_document
5、 添加新的物理卷到卷组中
  当系统安装了新的磁盘并创建了新的物理卷,而要将其添加到已有卷组时,就需要使用vgextend命令:
    # vgextend web_document /dev/hdc1
  这里/dev/hdc1是新的物理卷。
6、 从卷组中删除一个物理卷
  要从一个卷组中删除一个物理卷,首先要确认要删除的物理卷没有被任何逻辑卷正在使用,就要使用pvdisplay命令观察一个该物理卷信息:
[root@rac2 ~]# pvdisplay /dev/sdb*
Failed to read physical volume "/dev/sdb"
--- Physical volume ---
PV Name           /dev/sdb1
VG Name           cicro
PV Size           980.00 MB / not usable 0  
Allocatable       yes
PE Size (KByte)     4096
Total PE         245
Free PE           245
Allocated PE       0
PV UUID           INxyq5-JAWN-78oW-HhXv-ywoG-WVi3-3og9DR
--- Physical volume ---
PV Name           /dev/sdb2
VG Name           cicro
PV Size           980.00 MB / not usable 0  
Allocatable       yes
PE Size (KByte)     4096
Total PE         245
Free PE           80
Allocated PE       165
PV UUID           VevdQg-IoWI-iWf2-WfpS-Aoz2-fULI-8B3KVn
如果某个物理卷正在被逻辑卷所使用, 就需要将该物理卷的数据备份到其ta处所,然后再删除。
删除物理卷的命令为vgreduce:
# vgreduce web_document /dev/hda1
如果呈现:
[root@rac2 /]# vgreduce cicro /dev/sdb1
/dev/cdrom: open failed: Read-only file system
Physical volume "/dev/sdb1" still in use
那么执行以下操作:
[root@rac2 /]#umount /dev/cicro/gaojf (首先卸载跟/dev/sdb1有关的逻辑分区)
[root@rac2 /]# lvremove /dev/cicro/gaojf (移出逻辑卷gaojf)
/dev/cdrom: open failed: Read-only file system
Do you really want to remove active logical volume "gaojf"? [y/n]: y
Logical volume "gaojf" successfully removed
[root@rac2 /]# vgreduce cicro /dev/sdb1 (删除物理卷)
/dev/cdrom: open failed: Read-only file system
Removed "/dev/sdb1" from volume group "cicro"
[root@rac2 /]#
7、 创建逻辑卷
  创建逻辑卷的命令为lvcreate:
    # lvcreate -L 1500 -n www1 web_document
  该命令就在卷组web_document上创建名字为www1,大小为1500M的逻辑卷,并且装备入口为/dev/web_document /www1(web_document为卷组名,www1为逻辑卷名)。如果盼望创建一个使用全体卷组的逻辑卷,则需要首先观察该卷组的PE数,然后在创 建逻辑卷时指定:
# vgdisplay web_document| grep "Total PE"
Total PE 45230
# lvcreate -l 45230 web_document -n www1

8、创建文件系统

#mkreiserfs /dev/web_document/www1
以后,就可以加载并使用它:
# mkdir /data/wwwroot

# mount /dev/web_document/www1 /data/wwwroot

如果盼望系统启动时主动加载文件系统,则还 须要在/etc/fstab中添加内容:

/dev/web_document/www1 /data/wwwroot reiserfs defaults 1 2

9、 删除一个逻辑卷
删除逻辑卷以前首先需要将其卸载,然后删除:

# umount /dev/web_document/www1
# lvremove /dev/web_document/www1
lvremove -- do you really want to remove "/dev/web_document/www1"? [y/n]: y
lvremove -- doing automatic backup of volume group "web_document"
lvremove -- logical volume "/dev/web_document/www1" successfully removed

10、 扩大逻辑卷大小

LVM提供了便利调整逻辑卷大小的才能,扩大逻辑卷大小的命令是lvextend:

# lvextend ?L 12G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to 12 GB
lvextend -- doing automatic backup of volume group "web_document "
lvextend -- logical volume "/dev/web_document/www1" successfully extended

上面的命令就实现将逻辑卷www1的 大小扩招为12G。
# lvextend ?L +1G /dev/web_document/www1
lvextend -- extending logical volume "/dev/web_document/www1" to 13 GB
lvextend -- doing automatic backup of volume group "web_document "
lvextend -- logical volume "/dev/web_document/www1" successfully extended

上 面的命令就实现将逻辑卷www1的大小增添1G。

  增添了逻辑卷的容量以后,就需要改动文件系统大小以实现应用扩充的空间。笔者推举使用reiserfs文件系统来替代ext2或者ext3。因此这里仅仅 讨论reiserfs的情形。Reiserfs文件工具提供了文件系统大小调整工具:resize_reiserfs。对于盼望调整被加载的文件系统大 小:

  # resize_reiserfs -f /dev/web_document/www1
  一般建议最好将文件系统卸载,调整大小,然后再加载:

# umount /dev/web_document/www1
# resize_reiserfs /dev/web_document/www1
# mount ?t reiserfs /dev/web_document/www1 /data/wwwroot

对于使用ext2或ext3文件系统的用户可以斟酌使用工 具

默认的centos4.4没有安装这个工具,因此可以去

下载ext2resize的rpm包,具体操作如下:

[root@rac2 ~]# rpm -ivh --force ext2resize-1.1.19-1.i386.rpm
Preparing...   ############################## [100%]

  1:ext2resize ############################## [100%]
[root@rac2 ~]# ext2resize

ext2resize v1.1.18 - 2001/03/18 for EXT2FS 0.5b

usage: ext2resize [-dfquvV] device [new_size[bkmgt]]

    -d, --debug   : turn debug info on

    -f, --force   : skip safety checks

    -q, --quiet   : be quiet (print only errors)

    -u, --unsafe   : skip buffer cache flushing

     ,;-v, --verbose : be verbose

    -V, --version : print version and exit

    new_size is in ext2 blocks (1k, 2k, or 4k) (default),

    disk Blocks (512 byte), Kilo-, Mega-, Giga-, or Terabytes

[root@rac2 ~]# df -h
Filesystem         Size Used Avail Use% Mounted on
/dev/sda3         4.9G 3.3G 1.4G 72% /

/dev/sda1         99M 8.6M   86M 10% /boot
none             125M   0 125M   0% /dev/shm

/dev/hdc         638M 638M   0 100% /media/cdrom

/dev/mapper/cicro-gaojf 1.3G   63M 1.2G   6% /gaojf



[root@rac2 ~]# umount /dev/cicro/gaojf
[root@rac2 ~]# lvextend -L 2G /dev/cicro/gaojf

/dev/cdrom: open failed: Read-only file system

Extending logical volume gaojf to 2.00 GB
Logical volume gaojf successfully resized
[root@rac2 ~]# ext2resize /dev/cicro/gaojf (刷新逻辑分区,使更改生效)

ext2resize v1.1.18 - 2001/03/18 for EXT2FS 0.5b

[root@rac2 ~]# mount /dev/cicro/gaojf /gaojf

[root@rac2 ~]# df -h

Filesystem         Size Used Avail Use% Mounted on

/dev/sda3         4.9G 3.3G 1.4G 72% /

/dev/sda1         99M 8.6M   86M 10% /boot
none             125M   0 125M   0% /dev/shm

/dev/hdc         638M 638M   0 100% /media/cdrom

/dev/mapper/cicro-gaojf

              2.0G   63M 1.9G   4% /gaojf
11、 减少逻辑卷大小

使用lvreduce即可实现减少逻辑卷的容量,同样须要首先将文件体系卸载:

# umount /data/wwwroot
# resize_reiserfs ?s -2G /dev/web_document/www1
# lvreduce ?L -2G /dev/web_document/www1
# mount ?t reiserfs /dev/web_document/www1   /data/wwwroot

针对ext2/ext3文件系统,减少逻辑卷方法:

1 下载ext2resize的rpm包安装
2 umount要减小的LV
3 用ext2resize减小一个LV上的文件系统的大小
4 用lvreduce减小LV的大小
5 之后再mount,df -Th看到生效(没有丢失数据)

[root@rac2 /]# df -h
Filesystem         Size Used Avail Use% Mounted on
/dev/sda3         4.9G 3.3G 1.4G 72% /

/dev/sda1         99M 8.6M   86M 10% /boot

none             125M   0 125M   0% /dev/shm
/dev/hdc         638M 638M   0 100% /media/cdrom
/dev/mapper/cicro-gaojf 4.0G 124M 3.7G   4% /gaojf
[root@rac2 /]# umount /gaojf
[root@rac2 /]# ext2resize -d /dev/cicro/gaojf 786432

(786432这个是数据块的数量,每个块 默认4k,786432*4096=3G 即转变逻辑分区的大小为3G。)

ext2resize v1.1.18 - 2001/03/18 for EXT2FS 0.5b
ext2_open

ext2_bcache_init

ext2_determine_itoffset

setting itoffset to +85

ext2_get_reserved
Found 81 blocks in s_reserved_gdt_blocks

ext2_resize_fs

ext2_shrink_fs

ext2_inode_relocate
ext2_block_relocate_shrink
will remove group 24 without superblock

will remove group 25 with superblock

will remove group 26 without superblock

will remove group 27 with superblock
will remove group 28 without superblock
will remove group 29 without superblock

will remove group 30 without superblock

will remove group 31 without superblock
ext2_del_group 31

ext2_commit_metadata

ext2_del_group 30

ext2_commit_metadata
ext2_del_group 29

ext2_commit_metadata

ext2_del_group 28
ext2_commit_metadata

ext2_del_group 27

ext2_commit_metadata

ext2_del_group 26
ext2_commit_metadata
ext2_del_group 25

ext2_commit_metadata

ext2_del_group 24
ext2_commit_metadata

ext2_close
ext2_commit_metadata
注 意:下步必定要执行lvreduce操作,不能执行ext2resize /dev/cicro/gaojf操作,要不然上面的更改就不会生效。

[root@rac2 /]# lvreduce -L -1G /dev/cicro/gaojf (本来此逻辑卷大小为4G,把逻辑卷减少1G)
/dev/cdrom: open failed: Read-only file system

WARNING: Reducing active logical volume to 3.00 GB

THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce gaojf? [y/n]: y

Reducing logical volume gaojf to 3.00 GB

Logical volume gaojf successfully resized

[root@rac2 /]# ext2resize /dev/cicro/gaojf (刷新逻辑分区,使更改操作生效)

ext2resize v1.1.18 - 2001/03/18 for EXT2FS 0.5b

ext2resize: new size is same as current (786432)
[root@rac2 /]# mount /dev/cicro/gaojf /gaojf

[root@rac2 /]# df -h

Filesystem        ,; Size Used Avail Use% Mounted on

/dev/sda3         4.9G 3.3G 1.4G 72% /

/dev/sda1         99M 8.6M   86M 10% /boot

none             125M   0 125M   0% /dev/shm
/dev/hdc         638M 638M   0 100% /media/cdrom

/dev/mapper/cicro-gaojf

              3.0G 124M 2.7G   5% /gaojf

[root@rac2 /]#
阅读(4205) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~