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 就能看到新添加的磁盘
地址: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 上分逻辑分区
- [root@steven ~]# fdisk /dev/sdb
复制代码
n
l
+200M
p 打印出来看一下分区号
- Device Boot Start End Blocks Id System
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb5 1 26 208782 83 Linux
复制代码
t
5
8e
w
5、重新读取分区partprobe
partprobe
6、建pv
pvcreate /dev/sdb5
- [root@steven ~]# pvcreate /dev/sdb5
- Physical volume "/dev/sdb5" successfully created
复制代码
7、查看当前系统中的vg情况
vgs
- [root@steven ~]# vgs
- VG #PV #LV #SN Attr VSize VFree
- VolGroup 1 2 0 wz--n- 19.51g 0
复制代码
8、扩展vg 增加了200M的vg
vgextend VolGroup /dev/sdb5
- [root@steven ~]# vgextend VolGroup /dev/sdb5
- . Volume group "VolGroup" successfully extended
复制代码
扩容前
9、扩展lv
lvextend -L +200M /dev/VolGroup/lv_root
设备文件名规律 /dev/VG名/LV名
- [root@steven dev]# lvextend -L +200M /dev/VolGroup/lv_root
- Size of logical volume VolGroup/lv_root changed from 17.54 GiB (4490 extents) to 17.73 GiB (4540 extents).
- Logical volume lv_root successfully resized
复制代码
10、同步
resize2fs /dev/VolGroup/lv_root
- [root@steven dev]# resize2fs /dev/VolGroup/lv_root
- resize2fs 1.41.12 (17-May-2010)
- Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
- old desc_blocks = 2, new_desc_blocks = 2
- Performing an on-line resize of /dev/VolGroup/lv_root to 4648960 (4k) blocks.
- The filesystem on /dev/VolGroup/lv_root is now 4648960 blocks long.
复制代码
扩容后 Use% 比之前少了,说明扩容成功
扩容时的两个谣言
1、将新的磁盘分区加入到卷组vg之前,需要对分区进行格式化为lv所用的文件系统,通过实验证明是不需要格式化的,直接加入到卷组vg即可
2、对lv进行扩容,需要先umount才能扩容,通过实验证明是不需要umount的,也就是说在Apache服务或者其他服务正常运行的情况下就可以扩容
====================================================================
===============================================================
1、建立文件夹
mkdir /aming
- [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、创建物理卷
- Device Boot Start End Blocks Id System
- /dev/sdb1 66 98 265072+ 8e Linux LVM
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb3 99 127 232942+ 8e Linux LVM
- /dev/sdb5 1 26 208782 8e Linux LVM
复制代码
partprobe
pvcreate /dev/sdb1 /dev/sdb3
- [root@steven ~]# pvcreate /dev/sdb1
- Physical volume "/dev/sdb1" successfully created
- [root@steven ~]# pvcreate /dev/sdb3
- Physical volume "/dev/sdb3" successfully created
复制代码
4、查看物理卷pvs
5、创建卷组vgdata
vgcreate vgdata /dev/sdb1
- [root@steven ~]# vgcreate vgdata /dev/sdb1
- Volume group "vgdata" successfully created
复制代码
查看卷组
6、创建逻辑卷
lvcreate -L +240M -n lvdata1 vgdata
- [root@steven ~]# lvcreate -L +240M -n lvdata1 vgdata
- Logical volume "lvdata1" created
复制代码
查看逻辑卷
lvs
7、格式化逻辑卷mkfs.ext4 /dev/vgdata/lvdata1
- [root@steven ~]# mkfs.ext4 /dev/vgdata/lvdata1
- mke2fs 1.41.12 (17-May-2010)
- 文件系统标签=
- 操作系统:Linux
- 块大小=1024 (log=0)
- 分块大小=1024 (log=0)
- Stride=0 blocks, Stripe width=0 blocks
- 61440 inodes, 245760 blocks
- 12288 blocks (5.00%) reserved for the super user
- 第一个数据块=1
- Maximum filesystem blocks=67371008
- 30 block groups
- 8192 blocks per group, 8192 fragments per group
- 2048 inodes per group
- Superblock backups stored on blocks:
- 8193, 24577, 40961, 57345, 73729, 204801, 221185
- 正在写入inode表: 完成
- Creating journal (4096 blocks): 完成
- Writing superblocks and filesystem accounting information: 完成
- This filesystem will be automatically checked every 24 mounts or
- 180 days, whichever comes first. Use tune2fs -c or -i to override.
复制代码
8、挂载 如果要永久挂载 就要写在/etc/fstab 文件里面
mount /dev/vgdata/lvdata1 /aming
- [root@steven ~]# cd /aming
- [root@steven aming]# ls
- lost+found
复制代码
fdisk -l
- Disk /dev/mapper/vgdata-lvdata1: 251 MB, 251658240 bytes
- 255 heads, 63 sectors/track, 30 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk identifier: 0x00000000
复制代码
9、扩展vg ,将sdb3加进来
vgextend vgdata /dev/sdb3
- [root@steven aming]# vgextend vgdata /dev/sdb3
- Volume group "vgdata" successfully extended
复制代码
10、扩展lv
lvextend -L +230M /dev/vgdata/lvdata1
- [root@steven aming]# lvextend -L +230M /dev/vgdata/lvdata1
- Rounding size to boundary between physical extents: 232.00 MiB
- Size of logical volume vgdata/lvdata1 changed from 240.00 MiB (60 extents) to 472.00 MiB (118 extents).
- Logical volume lvdata1 successfully resized
复制代码
11、同步
resize2fs /dev/vgdata/lvdata1
- [root@steven aming]# resize2fs /dev/vgdata/lvdata1
- resize2fs 1.41.12 (17-May-2010)
- Filesystem at /dev/vgdata/lvdata1 is mounted on /aming; on-line resizing required
- old desc_blocks = 1, new_desc_blocks = 2
- Performing an on-line resize of /dev/vgdata/lvdata1 to 483328 (1k) blocks.
- 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:不询问
- [root@steven ~]# e2fsck -yf /dev/vgdata/lvdata1
- e2fsck 1.41.12 (17-May-2010)
- 第一步: 检查inode,块,和大小
- 第二步: 检查目录结构
- 第3步: 检查目录连接性
- Pass 4: Checking reference counts
- 第5步: 检查簇概要信息
- /dev/vgdata/lvdata1: 13/120832 files (0.0% non-contiguous), 21656/483328 blocks
复制代码
14、resize2fs 同步文件系统
resize2fs -f /dev/vgdata/lvdata1
- [root@steven ~]# resize2fs -f /dev/vgdata/lvdata1
- resize2fs 1.41.12 (17-May-2010)
- The filesystem is already 483328 blocks long. Nothing to do!
复制代码
15、使用lvreduce命令将逻辑卷减少注意:文件系统大小和逻辑卷大小一定要保持一致才行。如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费。
lvreduce -L -230M /dev/vgdata/lvdata1
- [root@steven ~]# lvreduce -L -230M /dev/vgdata/lvdata1
- Rounding size to boundary between physical extents: 228.00 MiB
- WARNING: Reducing active logical volume to 244.00 MiB
- THIS MAY DESTROY YOUR DATA (filesystem etc.)
- Do you really want to reduce lvdata1? [y/n]: y
- Size of logical volume vgdata/lvdata1 changed from 472.00 MiB (118 extents) to 244.00 MiB (61 extents).
- 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
- [root@steven ~]# lvremove /dev/vgdata/lvdata1
- Do you really want to remove active logical volume lvdata1? [y/n]: y
- Logical volume "lvdata1" successfully removed
复制代码
3、vgremove 删除卷组
vgremove vgdata
- [root@steven ~]# vgremove vgdata
- Volume group "vgdata" successfully removed
复制代码
4、pvremove 将物理卷转化成普通分区
pvremove /dev/sdb1 /dev/sdb3
- [root@steven ~]# pvremove /dev/sdb1 /dev/sdb3
- Labels on physical volume "/dev/sdb1" successfully wiped
- Labels on physical volume "/dev/sdb3" successfully wiped
复制代码
5、将sdb1和sdb3 转换回 83 Linux分区类型
fdisk /dev/sdb
l
- Command (m for help): l
- 0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
- 1 FAT12 39 Plan 9 82 Linux swap / So c1 DRDOS/sec (FAT-
- 2 XENIX root 3c PartitionMagic 83 Linux
复制代码
t
1
t
3
w
6、查看分区类型
partprobe
fdisk -l
- Disk /dev/sdb: 1073 MB, 1073741824 bytes
- 255 heads, 63 sectors/track, 130 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk identifier: 0xf27bd8ef
- Device Boot Start End Blocks Id System
- /dev/sdb1 66 98 265072+ 83 Linux
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb3 99 127 232942+ 83 Linux
- /dev/sdb5 1 26 208782 8e Linux LVM
复制代码
7、格式化 sdb1和sdb3
mkfs -t ext4 /dev/sdb1
mkfs -t ext4 /dev/sdb3
- [root@steven aming]# mkfs -t ext4 /dev/sdb3
- mke2fs 1.41.12 (17-May-2010)
- 文件系统标签=
- 操作系统:Linux
- 块大小=1024 (log=0)
- 分块大小=1024 (log=0)
- Stride=0 blocks, Stripe width=0 blocks
- 58464 inodes, 232940 blocks
- 11647 blocks (5.00%) reserved for the super user
- 第一个数据块=1
- Maximum filesystem blocks=67371008
- 29 block groups
- 8192 blocks per group, 8192 fragments per group
- 2016 inodes per group
- Superblock backups stored on blocks:
- 8193, 24577, 40961, 57345, 73729, 204801, 221185
- 正在写入inode表: 完成
- Creating journal (4096 blocks): 完成
- Writing superblocks and filesystem accounting information: 完成
- This filesystem will be automatically checked every 38 mounts or
- 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、查看挂载情况
- [root@steven testsdb3]# mount
- /dev/mapper/VolGroup-lv_root on / type ext4 (rw)
- proc on /proc type proc (rw)
- sysfs on /sys type sysfs (rw)
- devpts on /dev/pts type devpts (rw,gid=5,mode=620)
- tmpfs on /dev/shm type tmpfs (rw)
- /dev/sda1 on /boot type ext4 (rw)
- none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
- sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
- /dev/sdb1 on /testsdb1 type ext4 (rw)
- /dev/sdb3 on /testsdb3 type ext4 (rw)
复制代码
11、卸载先cd 回根目录
[root@steven testsdb3]# umount -l /testsdb3
[root@steven testsdb3]# umount -l /testsdb1
d
1
d
3
w
partprobe
fdisk -l
- Device Boot Start End Blocks Id System
- /dev/sdb2 1 65 522081 5 Extended
- /dev/sdb5 1 26 208782 8e Linux LVM
复制代码
s
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(加载驱动)
/proc下SCSI扫描
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编号
/sys下SCSI扫描
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.确保存储端已配置好LUN并输出给Linux 主机
- 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
- 3.运行powermt config 配置新认到的磁盘,生成虚拟设备
- 4.用powermt display 检查新认到的LUN 及设备路径
在现有PowerPath环境中动态删除 LUN
注意,必须严格遵守操作次序,如果次序有误可能会造成主机OS panic。
- 1.在将要删除的设备上停止所有的I/O。
- 2.通过以下命令确定虚拟设备对应的原始SCSI设备:
powermt display dev=emcpower
- 3.删除虚拟设备
powermt remove dev=emcpower
- 4.回收虚拟设备号以备后用
powermt release
如果此命令失败,已删除的虚拟设备仍会存在于/dev 和/sys/block 下,并且在以后动态添加新LUN时可能会引发问题。
- 5.对每个原始SCSI 设备执行以下命令:
echo 1 > /sys/block/sd/device/delete
此命令使PowerPath 停止这些原始sd 设备上的I/O 并且将其从/dev 和/sys/block下移除。如此命令执行不成功,在以后动态添加新LUN时可能会引发问题。
- 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命令的更多相关文章
- 【转】linux之tune2fs命令
转自:http://czmmiao.iteye.com/blog/1749232 tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外 ...
- (转)tune2fs命令详解
tune2fs命令详解(原创) 原文:http://czmmiao.iteye.com/blog/1749232 tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数 ...
- linux lvm逻辑卷管理之lvdisplay命令
linux 磁盘管理分fdisk parted 和LVM三种方式,我们这里重点是说lvm 我们来看看LVM基本术语(lvm和传统fdisk分区方式有区别)由于传统的磁盘管理不能对磁盘进行磁盘管理,因此 ...
- Python 1基础语法四(数字类型、输入输出汇总和命令行参数)
一.数字(Number)类型 python中数字有四种类型:整数.布尔型.浮点数和复数. int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long. ...
- oracle序列sequence操作汇总(命令)--待续
1.创建sequence 2.删除sequence 3.查询有哪些sequence select * from user_objects where object_type='SEQUENCE'; 4 ...
- Linux中tune2fs命令的-o选项
debug 启用此文件系统的调试代码. bsdgroups 在创建新文件时模拟BSD行为:它们将使用创建它们的目录.标准系统V的行为是默认情况下,新创建的文件采用当前进程的fsgid,除非目录设置了s ...
- 每日命令:(14)tune2fs
tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检.Linux系统下面也有文件系统自检,而 ...
- Linux命令分类汇总(1~6)
Linux命令分类汇总 序号 命令 参数 英文释义 功能说明 (一)线上查询及帮助命令(2个) 1 man manual 查看命令帮助,命令的词典,还有info 2 help h 查看Linux内置命 ...
- 『学了就忘』Linux文件系统管理 — 67、通过命令模式进行LVM分区
目录 1.物理卷管理 (1)准备硬盘或者分区 (2)建立物理卷 (3)查看物理卷 (3)删除物理卷 2.创建卷组 (1)建立卷组 (2)查看卷组 (3)增加卷组容量 (4)减小卷组容量 (5)删除卷组 ...
随机推荐
- [转]SQL注入漏洞及绑定变量浅谈
1.一个问题引发的思考 大家在群里讨论了一个问题,奉文帅之命写篇作文,且看: String user_web = "user_web" String sql = "upd ...
- JavaScript------字符串与HTML格式相互转换
转载: http://blog.sina.com.cn/s/blog_4cb0b0fc0100aoo1.html 代码:: 1.将字符转换成Html function encodeHtml(str){ ...
- Ext3.4-EXT之嵌套表格的实现
其中使用到的"RowExpander.js"为extjs官方示例中自带的. 实现这个嵌套表格要注意两点技巧: 1 提供给外层表格的dataStore的数据源以嵌套数组的形式表示细节 ...
- php 如何得到不含前导0的时分秒
通常我们获取时分秒是用 date("H:i:s") ,得到的效果是这样的 而如果想获取不含前导0的时分秒的话,就需要把前导0去掉. 如何去掉呢?我们来分析一下,07变7,20还是2 ...
- swift - 移除界面上的所有元素
下面代码可以遍历移除页面视图上的所有元件: //清空所有子视图 func clearViews() { for v in self.view.subviews as [UIView] { v.remo ...
- python远程登录服务器(paramiko模块安装和使用)
转自:http://www.jb51.net/article/46285.htm 一:简介 由paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器 ...
- ftp服务通信操作
1.将本地虚拟机网卡设置ip--->2.将虚拟机系统的网卡ip设置--->3.虚拟机设置特定网络模式vm8nat模式: (1) (2) (3) 保证正常互ping 通信, 4.在虚拟机系统 ...
- 好用的在线Markdown编辑器
dillinger.io 支持在线编辑,导出为html格式等.
- 如何打开或关闭windows的测试模式
百度经验:jingyan.baidu.com windows的测试模式就如同字面意思一样,是一个测试用的模式.这个模式的标志主要在有非官方驱动或系统关键文件运行时显示.例如安装了大内存补丁(32位系统 ...
- Vue如何引入远程JS文件
直接在dom上操作: export default { mounted() { const s = document.createElement('script'); s.type = 'text/j ...