LVM的一些问题汇总

LVM的一些问题汇总
--http://www.aminglinux.com/bbs/forum.php?mod=viewthread&tid=7664&page=1&extra=#pid38836

看了几篇文章和视频,跟啊铭老师也沟通过,下面列出啊铭老师没有说到的命令和自己的一些问题总结
RHCA会考到LVM 扩容 缩容

九个查看命令
pvdisplay
vgdisplay
lvdisplay
pvs 常用
vgs 常用
lvs 常用
pvscan
vgscan
lvscan

激活命令
lvchange -ay /dev/vg0 激活,如果逻辑卷还未激活的话就激活
lvchange -an /dev/vg0  休眠

[email protected] ~]# pvscan
  PV /dev/sda2   VG VolGroup   lvm2 [19.51 GiB / 0    free]
  Total: 1 [19.51 GiB] / in use: 1 [19.51 GiB] / in no VG: 0 [0   ]
[[email protected] ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup" using metadata type lvm2
[[email protected] ~]# lvscan
  ACTIVE            ‘/dev/VolGroup/lv_root‘ [17.54 GiB] inherit
  ACTIVE            ‘/dev/VolGroup/lv_swap‘ [1.97 GiB] inherit
[[email protected] ~]# pvs                   #Attr不是 a-- 表示未激活  大小是19.51g  没有剩余空间
  PV                      VG           Fmt      Attr     PSize      PFree
  /dev/sda2      VolGroup     lvm2      a--      19.51g       0 
[[email protected] ~]# vgs              # 这个vg下有一个pv  2个lv  大小跟pv的大小一样都是19.51g  没有剩余空间
  VG               #PV  #LV #SN      Attr          VSize      VFree
  VolGroup         1      2      0      wz--n-        19.51g        0 
[[email protected] ~]# lvs
  LV                      VG                Attr             LSize          Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root           VolGroup        -wi-ao----     17.54g                                                    
  lv_swap          VolGroup        -wi-ao----      1.97g

lvreduce -L 700M /dev/vgdata/lvdata1
一般用大L 指定大小,弊端就是有可能用不完vg里面的空间
用小 l,-l 127, 127 个PE ,弊端是需要计算,比如一个PE 4M 127*4M=508M 但是不会出现用不完vg的空间的情况

问题一
使用lvreduce进行缩容的时候需要umount  ,如果apache相关文件放在/data下,你要对/data进行缩容,那么apache只能停机

问题二
扩容步骤1、先fdisk分区 
fdisk /dev/sdb
n new
l  login分区
+200M  
t  分区类型
15  第15个分区
8e  lvm类型
w   保存

2、重新读取分区
partprobe

3、建pv ,扩展vg,扩展lv,resize
pvcreate /dev/sdb15   
vgextend vg0 /dev/sdb15
lvextend –L 1G /dev/vg0/LV01  #扩展LV
resize2fs /dev/vg0/LV01

http://video.baomihua.com/11386501/19695773

问题三
5) 当磁盘或分区损坏时,如何转移数据
pvmove 转移空间数据 --> vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去 --> pvremove命令将即将坏的磁盘或者分区从系统中删除掉 --> 拆除或修复磁盘
pvmove /dev/sdb1 
vgreduce vgdata /dev/sdb1
pvremove  /dev/sdb1

执行pvmove 的时候,Linux是把sdb1 的数据移动到别的分区

lvm配置 (参考内容,大家自行实践)
LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。支持动态扩充磁盘空间。
首先从空的硬盘sdb上创建两个分区sdb1 1G, sdb2 2G。
1)创建逻辑卷
pvcreate /dev/sdb1 /dev/sdb2   //创建物理卷
pvdisplay   //可以列出已经创建的物理卷
vgcreate vgdata /dev/sdb1 /dev/sdb2        //创建卷组 vgdata ,并将刚才创建好的两个物理卷加入该卷组
vgdisplay //可以列出已经建好的卷组
# 默认PE大小为4MB,PE是卷组的最小存储单元.可以通过 –s参数修改大小。

lvcreate -L 500M -n lvdata1 vgdata  //分割500M给新的逻辑卷lvdata1-n :指定 lv的名字
lvdisplay //列出当前的逻辑卷

mkfs.ext4 /dev/vgdata/lvdata1  //格式化逻辑卷
mount /dev/vgdata/lvdata1  /aming  //挂载逻辑卷

2) 扩展逻辑卷
逻辑卷lvdata1不够用了,我们如何给他增加空间呢?
lvextend –L +500M /dev/vgdata/lvdata1  //给lvdata1增加500M空间。
resize2fs  /dev/vgdata/lvdata1  //同步文件系统

3)扩展卷组
当卷组不够用的情况下,我们也是可以扩展卷组的。我们再创建一个新的分区叫做/dev/sdb3.
vgextend vgdata /dev/sdb3  //把sdb3加入到卷组vgdata中

4)减少逻辑卷大小
卸载 --> e2fsck 检测剩余空间 --> resize2fs 同步文件系统 --> 使用lvreduce命令将逻辑卷减少
注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。

umount  /data1
e2fsck -yf /dev/mapper/vgdata-lvdata1resize2fs /dev/mapper/vgdata-lvdata1 
lvreduce -L 700M /dev/vgdata/lvdata1
mount /dev/vgdata/lvdata1 /data1

5) 当磁盘或分区损坏时,如何转移数据
pvmove 转移空间数据 --> vgreduce命令将即将坏的磁盘或者分区从卷组vgdata里面移除除去 --> pvremove命令将即将坏的磁盘或者分区从系统中删除掉 --> 拆除或修复磁盘
pvmove /dev/sdb1 
vgreduce vgdata /dev/sdb1
pvremove  /dev/sdb1

6) 删除整个逻辑卷
umount卸载逻辑卷 --> 修改配置文件/etc/fstab(若是之前更改过) --> lvremove 删除逻辑卷lvdata1 --> vgremove 删除卷组vgdata --> pvremove 将物理卷转化成普通分区
umount /dev/vgdata/lvdata1 
lvremove /dev/vgdata/lvdata1
vgremove vgdata
pvremove /dev/sdb2
pvremove /dev/sdb3

------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
动手实验 动态扩容和缩容

扩容
1、在线加一块磁盘

添加1G大小的磁盘

完成

2、在终端里面 fdisk -l 就能看到新添加的磁盘

在终端里面 fdisk -l 就能看到新添加的磁盘,如果看不到可以使用这个方法
地址:http://blog.chinaunix.net/uid-21288388-id-4928598.html

确定主机总线号,磁盘是有总线连接着的
[[email protected] ~]# ls /sys/class/scsi_host/
host0 host1 host2

重新扫描SCSI总线来添加设备,因为添加的是SCSI磁盘,所以扫描的是SCSI总线
[[email protected] ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[[email protected] ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[[email protected] ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

3、用fdisk分出一个扩展分区 ,当然分出主分区也是可以的
fdisk /dev/sdb
n new
e
+500M  大小500m  (我这里只分了500M,当然用尽1G也是可以的)
w   保存

4、再在/dev/sdb 上分逻辑分区

  1. [[email protected] ~]# fdisk /dev/sdb

复制代码

n
l
+200M
p  打印出来看一下分区号

  1. Device Boot      Start         End      Blocks   Id  System
  2. /dev/sdb2               1          65      522081    5  Extended
  3. /dev/sdb5               1          26      208782   83  Linux

复制代码

t
5
8e
w
5、重新读取分区partprobe  
partprobe

6、建pv 
pvcreate /dev/sdb5

  1. [[email protected] ~]# pvcreate /dev/sdb5
  2. Physical volume "/dev/sdb5" successfully created

复制代码

7、查看当前系统中的vg情况
vgs

  1. [[email protected] ~]# vgs
  2. VG       #PV #LV #SN Attr   VSize  VFree
  3. VolGroup   1   2   0 wz--n- 19.51g    0

复制代码

8、扩展vg   增加了200M的vg
vgextend VolGroup /dev/sdb5

  1. [[email protected] ~]# vgextend VolGroup /dev/sdb5
  2. .  Volume group "VolGroup" successfully extended

复制代码

扩容前


9、扩展lv

lvextend -L +200M /dev/VolGroup/lv_root

设备文件名规律 /dev/VG名/LV名

  1. [[email protected] dev]# lvextend -L +200M /dev/VolGroup/lv_root
  2. Size of logical volume VolGroup/lv_root changed from 17.54 GiB (4490 extents) to 17.73 GiB (4540 extents).
  3. Logical volume lv_root successfully resized

复制代码

10、同步
resize2fs  /dev/VolGroup/lv_root

  1. [[email protected] dev]# resize2fs  /dev/VolGroup/lv_root
  2. resize2fs 1.41.12 (17-May-2010)
  3. Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
  4. old desc_blocks = 2, new_desc_blocks = 2
  5. Performing an on-line resize of /dev/VolGroup/lv_root to 4648960 (4k) blocks.
  6. The filesystem on /dev/VolGroup/lv_root is now 4648960 blocks long.

复制代码

扩容后  Use% 比之前少了,说明扩容成功

扩容时的两个谣言
1、将新的磁盘分区加入到卷组vg之前,需要对分区进行格式化为lv所用的文件系统,通过实验证明是不需要格式化的,直接加入到卷组vg即可
2、对lv进行扩容,需要先umount才能扩容,通过实验证明是不需要umount的,也就是说在Apache服务或者其他服务正常运行的情况下就可以扩容

====================================================================
===============================================================

缩容 (扩容可以在线扩容,但是缩容不能是在线的)

因为刚才扩容是在根分区扩容的,那么缩容涉及到umount,那么就不在根分区上面做了,我们另外新建一个分区
1、建立文件夹
mkdir /aming

  1. [[email protected] ~]# mkdir /aming

复制代码

2、我们刚才还有500M的空间可以利用,我们利用250M建立一个主分区,再用250M建立另一个主分区

fdisk /dev/sdb
n
p
1
+250M
t
1
8e
w
sdb1 lvm

fdisk /dev/sdb
n
p
3
+220M
t
3
8e
w
sdb3  lvm

3、创建物理卷

  1. Device Boot      Start         End      Blocks   Id  System
  2. /dev/sdb1              66          98      265072+  8e  Linux LVM
  3. /dev/sdb2               1          65      522081    5  Extended
  4. /dev/sdb3              99         127      232942+  8e  Linux LVM
  5. /dev/sdb5               1          26      208782   8e  Linux LVM

复制代码

partprobe
pvcreate     /dev/sdb1     /dev/sdb3

  1. [[email protected] ~]# pvcreate /dev/sdb1
  2. Physical volume "/dev/sdb1" successfully created
  3. [[email protected] ~]# pvcreate /dev/sdb3
  4. Physical volume "/dev/sdb3" successfully created

复制代码

4、查看物理卷pvs

5、创建卷组vgdata
vgcreate vgdata /dev/sdb1

  1. [[email protected] ~]# vgcreate vgdata /dev/sdb1
  2. Volume group "vgdata" successfully created

复制代码

查看卷组

6、创建逻辑卷
lvcreate -L +240M -n lvdata1 vgdata

  1. [[email protected] ~]# lvcreate -L +240M -n lvdata1 vgdata
  2. Logical volume "lvdata1" created

复制代码

查看逻辑卷
lvs

7、格式化逻辑卷mkfs.ext4  /dev/vgdata/lvdata1

  1. [[email protected] ~]# mkfs.ext4 /dev/vgdata/lvdata1
  2. mke2fs 1.41.12 (17-May-2010)
  3. 文件系统标签=
  4. 操作系统:Linux
  5. 块大小=1024 (log=0)
  6. 分块大小=1024 (log=0)
  7. Stride=0 blocks, Stripe width=0 blocks
  8. 61440 inodes, 245760 blocks
  9. 12288 blocks (5.00%) reserved for the super user
  10. 第一个数据块=1
  11. Maximum filesystem blocks=67371008
  12. 30 block groups
  13. 8192 blocks per group, 8192 fragments per group
  14. 2048 inodes per group
  15. Superblock backups stored on blocks:
  16. 8193, 24577, 40961, 57345, 73729, 204801, 221185
  17. 正在写入inode表: 完成
  18. Creating journal (4096 blocks): 完成
  19. Writing superblocks and filesystem accounting information: 完成
  20. This filesystem will be automatically checked every 24 mounts or
  21. 180 days, whichever comes first.  Use tune2fs -c or -i to override.

复制代码

8、挂载 如果要永久挂载 就要写在/etc/fstab 文件里面
mount /dev/vgdata/lvdata1  /aming

  1. [[email protected] ~]# cd /aming
  2. [[email protected] aming]# ls
  3. lost+found

复制代码

fdisk -l

  1. Disk /dev/mapper/vgdata-lvdata1: 251 MB, 251658240 bytes
  2. 255 heads, 63 sectors/track, 30 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0x00000000

复制代码

9、扩展vg ,将sdb3加进来
vgextend  vgdata  /dev/sdb3

  1. [[email protected] aming]# vgextend  vgdata  /dev/sdb3
  2. Volume group "vgdata" successfully extended

复制代码

10、扩展lv
lvextend -L +230M /dev/vgdata/lvdata1

  1. [[email protected] aming]# lvextend -L +230M /dev/vgdata/lvdata1
  2. Rounding size to boundary between physical extents: 232.00 MiB
  3. Size of logical volume vgdata/lvdata1 changed from 240.00 MiB (60 extents) to 472.00 MiB (118 extents).
  4. Logical volume lvdata1 successfully resized

复制代码

11、同步
resize2fs   /dev/vgdata/lvdata1

  1. [[email protected] aming]# resize2fs   /dev/vgdata/lvdata1
  2. resize2fs 1.41.12 (17-May-2010)
  3. Filesystem at /dev/vgdata/lvdata1 is mounted on /aming; on-line resizing required
  4. old desc_blocks = 1, new_desc_blocks = 2
  5. Performing an on-line resize of /dev/vgdata/lvdata1 to 483328 (1k) blocks.
  6. The filesystem on /dev/vgdata/lvdata1 is now 483328 blocks long.

复制代码

查看空间占用df -h

缩容
12、减少逻辑卷大小
先cd回去root目录 cd
umount -l  /aming  强制卸载

13、e2fsck 检测剩余空间
e2fsck -yf /dev/vgdata/lvdata1
-yf:不询问

  1. [[email protected] ~]# e2fsck -yf /dev/vgdata/lvdata1
  2. e2fsck 1.41.12 (17-May-2010)
  3. 第一步: 检查inode,块,和大小
  4. 第二步: 检查目录结构
  5. 第3步: 检查目录连接性
  6. Pass 4: Checking reference counts
  7. 第5步: 检查簇概要信息
  8. /dev/vgdata/lvdata1: 13/120832 files (0.0% non-contiguous), 21656/483328 blocks

复制代码

14、resize2fs 同步文件系统 
resize2fs  -f /dev/vgdata/lvdata1

  1. [[email protected] ~]# resize2fs  -f /dev/vgdata/lvdata1
  2. resize2fs 1.41.12 (17-May-2010)
  3. The filesystem is already 483328 blocks long.  Nothing to do!

复制代码

15、使用lvreduce命令将逻辑卷减少注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。
lvreduce -L -230M /dev/vgdata/lvdata1

  1. [[email protected] ~]# lvreduce -L -230M /dev/vgdata/lvdata1
  2. Rounding size to boundary between physical extents: 228.00 MiB
  3. WARNING: Reducing active logical volume to 244.00 MiB
  4. THIS MAY DESTROY YOUR DATA (filesystem etc.)
  5. Do you really want to reduce lvdata1? [y/n]: y
  6. Size of logical volume vgdata/lvdata1 changed from 472.00 MiB (118 extents) to 244.00 MiB (61 extents).
  7. Logical volume lvdata1 successfully resized

复制代码

16、重新挂载
mount  /dev/vgdata/lvdata1  /aming

不知道为何superblock损坏,mount不上[[email protected] ~]# mount  /dev/vgdata/lvdata1  /aming
mount: wrong fs type, bad option, bad superblock on /dev/mapper/vgdata-lvdata1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

===================================================================================================================
删除LVM

1、umount卸载逻辑卷
先cd回去root目录 cd
umount -l  /aming  强制卸载

修改配置文件/etc/fstab(若是之前更改过)

2、lvremove 删除逻辑卷lvdata1
lvremove  /dev/vgdata/lvdata1

  1. [[email protected] ~]# lvremove  /dev/vgdata/lvdata1
  2. Do you really want to remove active logical volume lvdata1? [y/n]: y
  3. Logical volume "lvdata1" successfully removed

复制代码

3、vgremove 删除卷组
vgremove  vgdata

  1. [[email protected] ~]# vgremove  vgdata
  2. Volume group "vgdata" successfully removed

复制代码

4、pvremove 将物理卷转化成普通分区
pvremove /dev/sdb1  /dev/sdb3

  1. [[email protected] ~]# pvremove /dev/sdb1  /dev/sdb3
  2. Labels on physical volume "/dev/sdb1" successfully wiped
  3. Labels on physical volume "/dev/sdb3" successfully wiped

复制代码

5、将sdb1和sdb3 转换回 83 Linux分区类型
fdisk /dev/sdb
l

  1. Command (m for help): l
  2. 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris
  3. 1  FAT12           39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT-
  4. 2  XENIX root      3c  PartitionMagic  83  Linux

复制代码

t
1
t
3
w
6、查看分区类型
partprobe
fdisk -l

  1. Disk /dev/sdb: 1073 MB, 1073741824 bytes
  2. 255 heads, 63 sectors/track, 130 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes
  4. Sector size (logical/physical): 512 bytes / 512 bytes
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes
  6. Disk identifier: 0xf27bd8ef
  7. Device Boot      Start         End      Blocks   Id  System
  8. /dev/sdb1              66          98      265072+  83  Linux
  9. /dev/sdb2               1          65      522081    5  Extended
  10. /dev/sdb3              99         127      232942+  83  Linux
  11. /dev/sdb5               1          26      208782   8e  Linux LVM

复制代码

7、格式化 sdb1和sdb3
mkfs -t ext4 /dev/sdb1 
mkfs -t ext4 /dev/sdb3

  1. [[email protected] aming]# mkfs -t ext4 /dev/sdb3
  2. mke2fs 1.41.12 (17-May-2010)
  3. 文件系统标签=
  4. 操作系统:Linux
  5. 块大小=1024 (log=0)
  6. 分块大小=1024 (log=0)
  7. Stride=0 blocks, Stripe width=0 blocks
  8. 58464 inodes, 232940 blocks
  9. 11647 blocks (5.00%) reserved for the super user
  10. 第一个数据块=1
  11. Maximum filesystem blocks=67371008
  12. 29 block groups
  13. 8192 blocks per group, 8192 fragments per group
  14. 2016 inodes per group
  15. Superblock backups stored on blocks:
  16. 8193, 24577, 40961, 57345, 73729, 204801, 221185
  17. 正在写入inode表: 完成
  18. Creating journal (4096 blocks): 完成
  19. Writing superblocks and filesystem accounting information: 完成
  20. This filesystem will be automatically checked every 38 mounts or
  21. 180 days, whichever comes first.  Use tune2fs -c or -i to override.

复制代码

8、创建目录
[[email protected] ~]# mkdir /testsdb1
[[email protected] ~]# mkdir /testsdb3

9、挂载
[[email protected] ~]# mount /dev/sdb1 /testsdb1
[[email protected] ~]# mount /dev/sdb3 /testsdb3

10、查看挂载情况

  1. [[email protected] testsdb3]# mount
  2. /dev/mapper/VolGroup-lv_root on / type ext4 (rw)
  3. proc on /proc type proc (rw)
  4. sysfs on /sys type sysfs (rw)
  5. devpts on /dev/pts type devpts (rw,gid=5,mode=620)
  6. tmpfs on /dev/shm type tmpfs (rw)
  7. /dev/sda1 on /boot type ext4 (rw)
  8. none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
  9. sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
  10. /dev/sdb1 on /testsdb1 type ext4 (rw)
  11. /dev/sdb3 on /testsdb3 type ext4 (rw)

复制代码

11、卸载先cd 回根目录
[[email protected] testsdb3]# umount  -l /testsdb3
[[email protected] testsdb3]# umount  -l /testsdb1

12、删除sdb1和sdb3fdisk /dev/sdb
d
1
d
3
w

partprobe
fdisk -l

  1. Device Boot      Start         End      Blocks   Id  System
  2. /dev/sdb2               1          65      522081    5  Extended
  3. /dev/sdb5               1          26      208782   8e  Linux LVM

复制代码

s

EMC中文支持论坛

介绍

Linux系统扫描SCSI磁盘有几种方式?Linux新增LUN之后,能否不重启主机就认出设备?如果安装了PowerPath,动态添加/删除LUN的命令是什么?本文总结了Linux主机对磁盘设备进行重新配置的方式,并附加命令实例。

更多信息

Linux系统提供多重机制以重新扫描SCSI总线并重认系统中加入的SCSI设备。在2.4内核方案中,由于动态LUN扫描机制不具备一致性,往往需要中断I/O。

2.6内核里,LUN扫描有了显著改进并添加了动态LUN扫描机制。Linux目前缺乏像drvconfig或ioscan那样允许动态SCSI通道重配的命令。

Linux主机对磁盘设备进行重新配置的方式包括:

    • 重启系统
    • 卸载并重新加载HBA驱动模块
    • Echo /proc下的SCSI设备列表
    • 通过/sys下的属性设置运行SCSI扫描
    • 通过HBA厂商脚本运行SCSI扫描

系统重启

重启主机是检测新添加磁盘设备的可靠方式。在所有I/O停止之后方可重启主机,同时静态或以模块方式连接磁盘驱动。系统初始化时会扫描PCI总线,因此挂载其上的SCSI host adapter会被扫描到,并生成一个PCI device。之后扫描软件会为该PCI device加载相应的驱动程序。加载SCSI host驱动时,其探测函数会初始化SCSI host,注册中断处理函数,最后调用scsi_scan_host函数扫描scsi host adapter所管理的所有scsi总线。

重新加载HBA驱动

通常情况下,HBA驱动在系统中以模块形式加载。从而允许模块被卸载并重新加载,在该过程中SCSI扫描函数得以调用。通常,在卸载HBA驱动之前,SCSI设备的所有I/O都应该停止,卸载文件系统,多路径服务应用也需停止。如果有代理或HBA应用帮助模块,也应当中止。

命令示例:

例如,rac节点上某台服务器执行fdisk –l命令看不到共享磁盘,可尝试执行如下命令:

# modprobe -r lpfc(卸载驱动)

# modprobe lpfc(加载驱动)

/procSCSI扫描

2.4内核中,/proc文件系统提供了可用SCSI设备的列表。如果系统中SCSI设备重新配置,那么所有这些改变通过echo /proc接口反映到SCSI设备中。添加一个设备,主机,channel,target ID,以及磁盘设备的LUN编号会被添加到/proc/scsi/,需指定scsi编号。

命令示例:

# echo "scsi add-single-device 0 1 2 3" > /proc/scsi/scsi

0:主机ID

1:channel ID

2:target ID

3:LUN编号

该命令会将新磁盘设备添加到/proc/scsi/scsi文件中。如果没有找到相应文件,需为/dev路径下新增磁盘设备创建设备文件名。

如果要删除一个磁盘设备,使用适当的主机,channel,target ID及LUN编号运行如下格式命令:

# echo "scsi remove-single-device 0 1 2 3" > /proc/scsi/scsi

0:主机ID

1:channel ID

2:target ID

3:LUN编号

/sysSCSI扫描

2.6内核中,HBA驱动将SCAN功能导出至/sys目录下,可用来重新扫描该接口下的SCSI磁盘设备。命令如下:

# cd /sys/class/scsi_host/host4/

# ls -al scan

# echo ‘- - -’ > scan

‘- - -’代表channel,target和LUN编号。以上命令会导致hba4下所有channel,target以及可见LUN被扫描。

RHEL5 SUSE10

echo ‘- - -’  > /sys/class/scsi_host/host0/scan

/sys/class/scsi_host/ 下面有几个host 就扫描几次

RHEL4 SUSE9

echo 1 >> /sys/class/scsi_host/host0/issue_lip

同样是/sys/class/scsi_host/ 下面有几个host 就执行几次

echo ‘- - -’ >> /sys/class/scsi_host/host0/scan

在现有PowerPath环境中增加LUN:

  1. 1.确保存储端已配置好LUN并输出给Linux 主机
  2. 2.通过powermt命令获得HBA 卡列表,并扫描列表中所有的HBA

echo ‘- - -’ > /sys/class/scsi_host/host#/scan

例如, 如果powermt 显示列出HBA 4 和5, 使用如下命令开始扫描:

echo ‘- - -’ > /sys/class/scsi_host/host4/scan

echo ‘- - -’ > /sys/class/scsi_host/host5/scan

  1. 3.运行powermt config 配置新认到的磁盘,生成虚拟设备
  2. 4.用powermt display 检查新认到的LUN 及设备路径

在现有PowerPath环境中动态删除 LUN

注意,必须严格遵守操作次序,如果次序有误可能会造成主机OS panic。

  1. 1.在将要删除的设备上停止所有的I/O。
  2. 2.通过以下命令确定虚拟设备对应的原始SCSI设备:

powermt display dev=emcpower

  1. 3.删除虚拟设备

powermt remove dev=emcpower

  1. 4.回收虚拟设备号以备后用

powermt release

如果此命令失败,已删除的虚拟设备仍会存在于/dev 和/sys/block 下,并且在以后动态添加新LUN时可能会引发问题。

  1. 5.对每个原始SCSI 设备执行以下命令:

echo 1 > /sys/block/sd/device/delete

此命令使PowerPath 停止这些原始sd 设备上的I/O 并且将其从/dev 和/sys/block下移除。如此命令执行不成功,在以后动态添加新LUN时可能会引发问题。

  1. 6.在存储阵列中删除对应的LUN,执行powermt display 验证设备已被删除。

通过HBA厂商脚本进行SCSI扫描

QLogic

利用QLogic FC HBA LUN Scan Utility 脚本即可无需重启动系统而识别新添加的LUN。也无需对QLogic FC driver 的重新加载。

命令示例:

通过以下命令重新扫描所有HBA:

# ./ql-dynamic-tgt-lun-disc.sh

# ./ql-dynamic-tgt-lun-disc.sh -s

# ./ql-dynamic-tgt-lun-disc.sh –scan

重新扫描并删除丢失的LUN,使用以下两个命令其中任何一个:

# ./ql-dynamic-tgt-lun-disc.sh -s -r

# ./ql-dynamic-tgt-lun-disc.sh --scan –refresh

Emulex

使用 Emulex LUN Scan Utility 脚本可以动态扫描新添加的LUN。

命令示例:

# gunzip lun_scan.sh.gz

# chmod a+x lun_scan

扫描所有lpfc HBA:

# lun_scan all

扫描scsi主机编号2的lpfc HBA:

# lun_scan 2

之后确认OS 识别到新设备:

# fdisk -l

如果系统中有PowerPath ,还需要运行:

# powermt config

时间: 2024-10-21 23:57:45

LVM的一些问题汇总的相关文章

LVM: Logical Volume Manager 逻辑卷管理

一.LVM介绍 LVM: Logical Volume Manager, Version: 2 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小 允许在多个物理设备间重新组织文件系统 将设备指定为物理卷 用一个或者多个物理卷来创建一个卷组 le   逻辑盘区 ,从卷组中划分pe给逻辑卷后,即成为le pe : 物理盘区.即在卷组中指定的块,在物理设备中的表现 物理卷是用固定大小的物理区域( Physical Extent,PE)来定义的 在物理卷上创建的逻辑卷是由物理区域( PE)组成

Linux 磁盘管理 高级篇 -- quota,RAID,LVM

1 概述 本文对配额,RAID,LVM的概念和具体创建过程做了介绍 2 配额 2.1 配额概念 在内核中执行 以文件系统为单位启用 对不同组或者用户的策略不同 根据块或者节点进行限制 执行软限制(soft limit) 硬限制(hard limit) 实现控制用户使用磁盘空间,防止某个用户无限制使用磁盘空间,对系统造成损害 配额要对磁盘独立分区进行控制,而且只能针对文件系统来进行配额,不能对文件夹进行控制,文件系统挂载选项要具备quota功能,在fstab里添加usrquota,grpquota

KVM虚拟化搭建及其KVM中LVM扩容

KVM虚拟化搭建及其KVM中LVM扩容 前言: 公司项目方最近有两台物理服务器系统分别为CentOS 7.2.需要部署KVM虚拟化,第一台服务器A需要虚拟出三台虚拟机(均为CentOS 7.2系统),服务器B上需要虚拟出三台CentOS 7.2 系统和两台windows server2012 系统.其中六台CentOS 7.2 虚拟机需要部署我们自己的平台,两台windows分别部署客户的平台.下面来为大家说一下KVM虚拟化的搭建,以及创建虚拟机的两种办法,及其操作使用.     KVM小课补:

[转]Linux 系统运维学习方法汇总

Linux 系统运维学习方法汇总 (2014.07.18) from:http://freeloda.blog.51cto.com/2033581/1315694 大纲 一.前言 二.Linux 运维大环境说明 三.Linux 运维学习思路 四.Linux 运维大方向说明 五.Linux 运维学习必看书籍推荐 六.Linux 运维实践内容简介 注,本博文主要用于交流与学习.如有雷同,纯属意外. 一.前言 最近,有不少博友问我.刚进入运维行业怎么学习呢?思路是什么?一点思路也没有,然后与大家在群里

程序员开发书籍汇总

文件类型 文件名称 更新时间 pdf 浅谈ACEGI配制 .pdf 2015/10/9 pdf AJAX In Action.pdf 2015/10/9 pdf Ajax.pdf 2015/10/9 txt AjaxHttpRequest.txt 2015/10/9 pdf AJAXInAction.pdf 2015/10/9 pdf Ajax经典案例开发大全.pdf 2015/10/9 pdf AJAX开发简略(含续一).pdf 2015/10/9 pdf AJAX开发简略.pdf 2015/

RedHat 和 Mirantis OpenStack 产品的版本和功能汇总和对比(持续更新)

Mirantis 和 Red Hat 作为 OpenStack 商业化产品领域的两大领军企业,在行业内有重要的地位.因此,研究其产品版本发布周期和所支持的功能,对制定 OpenStack 产品的版本和功能规划有重要的参考意义. 1. 版本基本情况 OpenStack 版本 OpenStack GA 日期 RedHat OpenStack Platform 版本 Mirantis  OpenStack Juno 2014-10-16 6 (Feb 9, 2015) 6.0 (12/25/2014)

零基础学习openstack【完整中级篇】及openstack资源汇总

1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事,内容整合来自: 零基础学习openstack(上)[中级篇] 零基础学习openstack(下)[中级篇] 是在 零基础学习openstack[初级篇]基础上的一个继续: 初级篇,我们主要是有这么一个概念,openstack的组成openstack由哪些部分来组成: Identity(代号为“Ke

RHCE7.0练习题汇总[转]

RHCE7.0练习题汇总38 RHCSA部分 关于密码破解,在上午的考试中需要我们自己安装图形化界面和破解root密码,root的密码按照题目的要求来进行修改.可以使用单用户模式或者使用上课讲的re.break都可以. re.break方法: 删除 console=ttys0,115200n8这句话 在最后加入rd.break 进入交换模式以后输入下列指令: 1 2 3 4 5 mount -o remount,rw /sysroot chroot /sysroot passwd #密码 tou

Linux学习命令汇总六——磁盘分区,磁盘挂载,文件系统管理,压缩及归档命令

本章Blog相关Linux知识点 Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 系统中的文件.目录.软连接及文件保护信息等都存储在其中.按照名称进行存取. 磁盘:磁道,扇区 ,柱面 ,固定角速度 ,平均寻道时间 MBR :master boot recoard 主引导记录 (512字节),存放bootloader (引导加载器 446字节)+ 磁盘分区 (64字节) 一块磁盘最多分为4个主分区 ,或者3主分区1扩展分区  ,磁盘在C