LVM的一些问题汇总  tune2fs命令
--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  休眠

root@steven ~]# 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   ]
[root@steven ~]# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "VolGroup" using metadata type lvm2
[root@steven ~]# lvscan
  ACTIVE            '/dev/VolGroup/lv_root' [17.54 GiB] inherit
  ACTIVE            '/dev/VolGroup/lv_swap' [1.97 GiB] inherit
[root@steven ~]# pvs                   #Attr不是 a-- 表示未激活  大小是19.51g  没有剩余空间
  PV                      VG           Fmt      Attr     PSize      PFree
  /dev/sda2      VolGroup     lvm2      a--      19.51g       0 
[root@steven ~]# vgs              # 这个vg下有一个pv  2个lv  大小跟pv的大小一样都是19.51g  没有剩余空间
  VG               #PV  #LV #SN      Attr          VSize      VFree
  VolGroup         1      2      0      wz--n-        19.51g        0 
[root@steven ~]# 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

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

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

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

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

  1. [root@steven ~]# 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. [root@steven ~]# pvcreate /dev/sdb5
  2. Physical volume "/dev/sdb5" successfully created

复制代码

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

  1. [root@steven ~]# 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. [root@steven ~]# vgextend VolGroup /dev/sdb5
  2. .  Volume group "VolGroup" successfully extended

复制代码

扩容前


9、扩展lv

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

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

  1. [root@steven 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. [root@steven 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. [root@steven ~]# 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. [root@steven ~]# pvcreate /dev/sdb1
  2. Physical volume "/dev/sdb1" successfully created
  3. [root@steven ~]# pvcreate /dev/sdb3
  4. Physical volume "/dev/sdb3" successfully created

复制代码

4、查看物理卷pvs

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

  1. [root@steven ~]# vgcreate vgdata /dev/sdb1
  2. Volume group "vgdata" successfully created

复制代码

查看卷组

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

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

复制代码

查看逻辑卷
lvs

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

  1. [root@steven ~]# 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. [root@steven ~]# cd /aming
  2. [root@steven 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. [root@steven aming]# vgextend  vgdata  /dev/sdb3
  2. Volume group "vgdata" successfully extended

复制代码

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

  1. [root@steven 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. [root@steven 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. [root@steven ~]# 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. [root@steven ~]# 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. [root@steven ~]# 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不上[root@steven ~]# 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. [root@steven ~]# 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. [root@steven ~]# vgremove  vgdata
  2. Volume group "vgdata" successfully removed

复制代码

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

  1. [root@steven ~]# 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. [root@steven 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、创建目录
[root@steven ~]# mkdir /testsdb1
[root@steven ~]# mkdir /testsdb3

9、挂载
[root@steven ~]# mount /dev/sdb1 /testsdb1
[root@steven ~]# mount /dev/sdb3 /testsdb3

10、查看挂载情况

  1. [root@steven 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 回根目录
[root@steven testsdb3]# umount  -l /testsdb3
[root@steven 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


scsi总线扫描原理

http://blog.chinaunix.net/uid-28391754-id-3421932.html

、在终端里面 fdisk -l 就能看到新添加的磁盘
在终端里面 fdisk -l 就能看到新添加的磁盘,如果看不到可以使用这个方法
地址:http://blog.chinaunix.net/uid-21288388-id-4928598.html 确定主机总线号,磁盘是有总线连接着的
[root@steven ~]# ls /sys/class/scsi_host/
host0 host1 host2 重新扫描SCSI总线来添加设备,因为添加的是SCSI磁盘,所以扫描的是SCSI总线
[root@steven ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@steven ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@steven ~]# echo "- - -" > /sys/class/scsi_host/host2/scan -------------------------------------- 重启系统
卸载并重新加载HBA驱动模块
Echo /proc下的SCSI设备列表
通过/sys下的属性设置运行SCSI扫描
通过HBA厂商脚本运行SCSI扫描 /proc下SCSI扫描
.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 :主机ID
:channel ID
:target ID
:LUN编号 该命令会将新磁盘设备添加到/proc/scsi/scsi文件中。如果没有找到相应文件,需为/dev路径下新增磁盘设备创建设备文件名。 如果要删除一个磁盘设备,使用适当的主机,channel,target ID及LUN编号运行如下格式命令: # echo "scsi remove-single-device 0 1 2 3" > /proc/scsi/scsi :主机ID
:channel ID
:target ID
:LUN编号 /sys下SCSI扫描
.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 就扫描几次 确定主机总线号,磁盘是有总线连接着的, 有多少分区就扫描多少次,比如有sda1,sda2,sda3 扫三次
[root@steven ~]# ls /sys/class/scsi_host/
host0 host1 host2 重新扫描SCSI总线来添加设备,因为添加的是SCSI磁盘,所以扫描的是SCSI总线,命令会导致sda1,sda2,sda3 下所有channel,target以及可见LUN被扫描。
[root@steven ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@steven ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@steven ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

--自己虚拟机
[root@steven linux]# cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: NECVMWar Model: VMware IDE CDR10 Rev: 1.00
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: VMware,  Model: VMware Virtual S Rev: 1.0
  Type:   Direct-Access                    ANSI  SCSI revision: 02

# ls /sys/class/scsi_host/
host0  host1  host2

--腾讯云
[steven@VM_xxcentos ~]$ cat /proc/scsi/scsi
Attached devices:
[steven@VMxx_centos ~]$ ls /sys/class/scsi_host/
host0  host1


LVM 常用命令 2012-03-14 09:55:06

http://blog.chinaunix.net/uid-21795529-id-3132599.html

表 B-1 LVM 命令摘要
命令
说明
extendfs
扩充文件系统:

# extendfs /dev/vg00/rlvol3

lvchange
更改逻辑卷的特性:

# lvchange -t 60 /dev/vg00/lvol3

lvcreate
在卷组中创建逻辑卷:

# lvcreate -L 100 /dev/vg00

lvdisplay
显示有关逻辑卷的信息:

# lvdisplay -v /dev/vg00/lvol1

lvextend
为逻辑卷添加镜像

# lvextend -m 1 /dev/vg00/lvol3

lvextend
增加逻辑卷的大小

# lvextend -L 120 /dev/vg00/lvol3

lvlnboot
准备将逻辑卷用作根区域、交换区域或转储区域:

# lvlnboot -d /dev/vg00/lvol2

lvmerge
将拆分卷合并为一个逻辑卷:

# lvmerge /dev/vg00/lvol4b /dev/vg00/lvol4

lvreduce
减小逻辑卷的大小:

# lvreduce -L 100 /dev/vg00/lvol3

lvreduce
减小逻辑卷的镜像副本的数量:

# lvreduce -m 0 /dev/vg00/lvol3

lvremove
从卷组中删除逻辑卷:

# lvremove /dev/vg00/lvol6

lvrmboot
删除到根区域、交换区域或转储区域的逻辑卷链路:

# lvrmboot -d /dev/vg00/lvol2

lvsplit
将一个镜像逻辑卷拆分为两个逻辑卷:

# lvsplit /dev/vg00/lvol4

lvsync
同步过时的逻辑卷镜像:

# lvsync /dev/vg00/lvol1

pvchange
更改物理卷的特性:

# pvchange -a n /dev/disk/disk2

pvck
对物理卷执行一致性检查:

# pvck /dev/disk/disk47_p2

pvcreate
创建用作卷组的一部分的物理卷:

# pvcreate /dev/rdisk/disk2

pvdisplay
显示有关物理卷的信息:

# pvdisplay -v /dev/disk/disk2

pvmove
将盘区从一个物理卷移动到另一个物理卷:

# pvmove /dev/disk/disk2 /dev/disk/disk3

pvremove
从物理卷中删除 LVM 数据结构:

# pvremove /dev/rdisk/disk2

vgcfgbackup
保存卷组的 LVM 配置:

# vgcfgbackup vg00

vgcfgrestore
恢复 LVM 配置:

# vgcfgrestore -n /dev/vg00 /dev/rdisk/disk2

vgchange
打开或关闭卷组:

# vgchange -a y /dev/vg00

vgchgid
更改物理卷的卷组 ID:

# vgchgid /dev/rdisk/disk3

vgcreate
创建卷组:

# vgcreate /dev/vg01 /dev/disk/disk2 /dev/disk/disk3

vgdisplay
显示有关卷组的信息:

# vgdisplay -v /dev/vg00

vgextend
通过添加物理卷来扩充卷组:

# vgextend /dev/vg00 /dev/disk/disk2

vgexport
从系统中删除卷组:

# vgexport /dev/vg01

vgimport
向系统添加现有卷组:

# mkdir /dev/vg04
# mknod /dev/vg04/group c 640x0n0000
# vgimport -v /dev/vg04

(n 编号在所有卷组中是唯一的)。
vgmodify
修改卷组的配置参数:

# vgmodify -v -t -n -r /dev/disk/disk3

vgscan
扫描卷组的系统磁盘:

# vgscan -v

vgreduce
通过从卷组中删除一个或多个物理卷来缩小卷组:

# vgreduce /dev/vg00 /dev/disk/disk2

vgremove
从系统和磁盘中删除卷组定义:

# vgremove /dev/vg00 /dev/disk/disk2

vgsync
同步卷组中的所有镜像逻辑卷:

# vgsync vg00


tune2fs命令

http://blog.chinaunix.net/uid-7530389-id-2050094.html
tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检。Linux系统下面也有文件系统自检,而且是可以通过tune2fs命令,自行定义自检周期及方式。

参数------------------------------------------
tune2fs [ -l ] [ -c max-mount-counts ] [ -e errors-behavior ] [ -f ] [ -i interval-between-checks ] [ -j ] [ -J journal-options ] [ -m
  reserved-blocks-percentage ] [ -o [^]mount-options[,...] ] [ -r reserved-blocks-count ] [ -s sparse-super-flag ] [ -u user ] [ -g
  group ] [ -C mount-count ] [ -L volume-name ] [ -M last-mounted-directory ] [ -O [^]feature[,...] ] [ -T time-last-checked ] [ -U
  UUID ] device
常用选项说明:
  -l 查看文件系统信息
  -c max-mount-counts 设置强制自检的挂载次数,如果开启,每挂载一次mount conut就会加1,超过次数就会强制自检
  -i interval-between-checks[d|m|w] 设置强制自检的时间间隔[d天m月w周]
  -m reserved-blocks-percentage 保留块的百分比
  -j 将ext2文件系统转换为ext3类型的文件系统
  -L volume-label 类似e2label的功能,可以修改文件系统的标签
  -r reserved-blocks-count 调整系统保留空间
  -o [^]mount-option[,...] Set or clear the indicated default mount options in the filesystem. 设置或清除默认挂载的文件系统选项

示例-----------------------------------
tune2fs -c 30 /dev/hda1 设置强制检查文件系统可以挂载的次数
  tune2fs -c -l /dev/hda1 关闭强制检查挂载次数限制。
  tune2fs -i 10 /dev/hda1 10天后检查
  tune2fs -i 1d /dev/hda1 1天后检查
  tune2fs -i 3w /dev/hda1 3周后检查
  tune2fs -i 6m /dev/hda1 半年后检查
  tune2fs -i 0 /dev/hda1 禁用时间检查
tune2fs -j /dev/hda1 添加日志功能,将ext2转换成ext3文件系统
tune2fs -r 40000 /dev/hda1 调整/dev/hda1分区的保留空间为40000个磁盘块
tune2fs -o acl,user_xattr /dev/hda1 设置/dev/hda1挂载选项,启用Posix Access Control Lists和用户指定的扩展属性
开机取消自检:
tune2fs -l /dev/sdb1 | grep -E ‘Maximum mount count:|Check interval’
tune2fs -i 0 -c 0 /dev/sdb1

f

LVM的一些问题汇总 tune2fs命令的更多相关文章

  1. 【转】linux之tune2fs命令

    转自:http://czmmiao.iteye.com/blog/1749232 tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外 ...

  2. (转)tune2fs命令详解

    tune2fs命令详解(原创) 原文:http://czmmiao.iteye.com/blog/1749232 tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数 ...

  3. linux lvm逻辑卷管理之lvdisplay命令

    linux 磁盘管理分fdisk parted 和LVM三种方式,我们这里重点是说lvm 我们来看看LVM基本术语(lvm和传统fdisk分区方式有区别)由于传统的磁盘管理不能对磁盘进行磁盘管理,因此 ...

  4. Python 1基础语法四(数字类型、输入输出汇总和命令行参数)

    一.数字(Number)类型 python中数字有四种类型:整数.布尔型.浮点数和复数. int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long. ...

  5. oracle序列sequence操作汇总(命令)--待续

    1.创建sequence 2.删除sequence 3.查询有哪些sequence select * from user_objects where object_type='SEQUENCE'; 4 ...

  6. Linux中tune2fs命令的-o选项

    debug 启用此文件系统的调试代码. bsdgroups 在创建新文件时模拟BSD行为:它们将使用创建它们的目录.标准系统V的行为是默认情况下,新创建的文件采用当前进程的fsgid,除非目录设置了s ...

  7. 每日命令:(14)tune2fs

    tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检.Linux系统下面也有文件系统自检,而 ...

  8. Linux命令分类汇总(1~6)

    Linux命令分类汇总 序号 命令 参数 英文释义 功能说明 (一)线上查询及帮助命令(2个) 1 man manual 查看命令帮助,命令的词典,还有info 2 help h 查看Linux内置命 ...

  9. 『学了就忘』Linux文件系统管理 — 67、通过命令模式进行LVM分区

    目录 1.物理卷管理 (1)准备硬盘或者分区 (2)建立物理卷 (3)查看物理卷 (3)删除物理卷 2.创建卷组 (1)建立卷组 (2)查看卷组 (3)增加卷组容量 (4)减小卷组容量 (5)删除卷组 ...

随机推荐

  1. 记录下自己常用的全框架HTML代码

    纯粹记录下,没有任何意义. 也不推荐使用 <frameset rows="> <frame src=" name="topFrame" scr ...

  2. iOS-WKWebView使用

    使用代码:可直接粘贴到自己项目中使用 .h #import "BaseViewController.h" @interface LinkNewsController : BaseV ...

  3. POJ 1252 Euro Efficiency(完全背包, 找零问题, 二次DP)

    Description On January 1st 2002, The Netherlands, and several other European countries abandoned the ...

  4. vue实现图片点击放大

    用的vue-cli开发的项目,下面是具体实现代码 子组件: <template> <!-- 过渡动画 --> <transition name="fade&qu ...

  5. Kafka中Producer端封装自定义消息

    我们知道KeywordMessage就是被kafka发送和存储的对象.所以只需要模拟出这个就可以发送自定义消息了. 比如我需要将用户的id,user,age,address和访问ip和访问date记录 ...

  6. glob模块--查询一个文件名列表

    ''' 在python中,glob模块是用来查找匹配的文件的 在查找的条件中,需要用到Unix shell中的匹配规则: * : 匹配所所有 ? : 匹配一个字符 *.* : 匹配如:[hello.t ...

  7. 第六篇:GPU 并行优化的几种典型策略

    前言 如何对现有的程序进行并行优化,是 GPU 并行编程技术最为关注的实际问题.本文将提供几种优化的思路,为程序并行优化指明道路方向. 优化前准备 首先,要明确优化的目标 - 是要将程序提速 2 倍? ...

  8. MUI 单个图片上传预览(拍照+系统相册):先选择->预览->上传提交

    1 html部分 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  9. android框架---->下沉文字Titanic的使用

    Titanic is a simple illusion obtained by applying an animated translation on the TextView TextPaint ...

  10. diamond types are not supported at this language level

    在intellij导入git项目之后出现 diamond types are not supported at this language level错误 或者String等报错 File->P ...