RAID:
级别:仅代表磁盘组织方式不同,没有上下之分;
0: 条带
性能提升: 读,写
冗余能力(容错能力): 无
空间利用率:nS
至少2块盘
1: 镜像
性能表现:写性能下降,读性能提升
冗余能力:有
空间利用率:1/2
至少2块盘
2:
3
4: 校验码;校验码盘IO成为瓶颈
5: 轮流校验盘
性能表现:读,写提升
冗余能力:有
空间利用率:(n-1)/n
至少需要3块
10(先镜像,后条带;最常用模式):
性能表现:读、写提升
冗余能力:有
空间利用率:1/2
至少需要4块
01(先条带,后镜像;备份开销大):
性能表现:读、写提升
冗余能力:有
空间利用率:1/2
至少需要4块
50:
性能表现:读、写提升
冗余能力:有
空间利用率:(n-2)/n
至少需要6块
jbod:
性能表现:无提升
冗余能力:无
空间利用率:100%
至少需要2块
创建逻辑RIAD:硬件级别数据备份
/dev/md0
/dev/md1
md: 内核模块
mdadm: shell命令,将任何块设备做成RAID;不同磁盘上的分区进行
模式化的命令:
创建模式
-C
专用选项:
-l: 级别
-n #: 设备个数
-a {yes|no}: 是否自动为其创建设备文件
-c: CHUNK大小, 2^n,默认为64K
-x #: 指定空闲盘个数
管理模式
--add, --remove, --fail
mdadm /dev/md# --fail /dev/sda7
监控模式
-F
增长模式
-G
装配模式
-A
练习:创建
RAID0
2G:
4: 512MB
2: 1G
Command (m for help): t (调整分区类型)
Partition number (1-10): 9
Hex code (type L to list codes): fd
Changed system type of partition 9 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-10): 10
Hex code (type L to list codes): fd
Changed system type of partition 10 to fd (Linux raid autodetect)
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x31e2db75
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
/dev/sdb4 263 2610 18860310 5 Extended
/dev/sdb5 263 524 2104483+ 83 Linux
/dev/sdb6 525 1178 5253223+ 83 Linux
/dev/sdb7 1179 1310 1060258+ 83 Linux
/dev/sdb8 1311 1442 1060258+ 82 Linux swap / Solaris
/dev/sdb9 1443 1574 1060258+ fd Linux raid autodetect
/dev/sdb10 1575 1706 1060258+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost ~]#
[root@localhost ~]# mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb{9,10} (使用两个盘sdb9/sdb10 创建raid0模式硬盘md0)
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# cat /proc/mdstat 查看所有启动的raid设备
Personalities : [raid0]
md0 : active raid0 sdb10[1] sdb9[0]
2117632 blocks super 1.2 512k chunks
unused devices: <none>
[root@localhost ~]#
[root@localhost ~]# mke2fs -j /dev/md0 (md0创建文件系统ext3)
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
132464 inodes, 529408 blocks
26470 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=545259520
17 block groups
32768 blocks per group, 32768 fragments per group
7792 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]#
[root@localhost ~]# fdisk -l (查看硬盘分区)
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x0004cc30
Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 2350 18566144 83 Linux
/dev/sda3 2350 2611 2097152 82 Linux swap / Solaris
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x31e2db75
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
/dev/sdb4 263 2610 18860310 5 Extended
/dev/sdb5 263 524 2104483+ 83 Linux
/dev/sdb6 525 1178 5253223+ 83 Linux
/dev/sdb7 1179 1310 1060258+ 83 Linux
/dev/sdb8 1311 1442 1060258+ 82 Linux swap / Solaris
/dev/sdb9 1443 1574 1060258+ fd Linux raid autodetect
/dev/sdb10 1575 1706 1060258+ fd Linux raid autodetect
Disk /dev/md0: 2168 MB, 2168455168 bytes
2 heads, 4 sectors/track, 529408 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000
[root@localhost ~]#
[root@localhost ~]# mount /dev/md0 /mnt/
[root@localhost ~]# ls /mnt/
lost+found (硬盘挂载成功)
root@localhost ~]#
查看RAID阵列的详细信息
mdadm -D /dev/md#
--detail
[root@localhost ~]# mdadm -D /dev/md0 (查看raid相关信息,或者mdadm --detail /dev/md127)
mdadm: cannot open /dev/md0: No such file or directory
[root@localhost ~]# mdadm -D /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Fri Feb 24 22:51:00 2017
Raid Level : raid0
Array Size : 2117632 (2.02 GiB 2.17 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Feb 24 22:51:00 2017
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Name : localhost:0 (local to host localhost)
UUID : ed1ec896:779ae712:b5496c27:f941c3d0
Events : 0
Number Major Minor RaidDevice State
0 8 25 0 active sync /dev/sdb9
1 8 26 1 active sync /dev/sdb10
[root@localhost ~]#
watch: 周期性地执行指定命令,并以全屏方式显示结果
-n #:指定周期长度,单位为秒,默认为2
格式: watch -n # ‘COMMAND‘
将当前RAID信息保存至配置文件,以便以后进行装配:
mdamd -D --scan > /etc/mdadm.conf
[root@localhost ~]# mdadm -D --scan
ARRAY /dev/md/localhost:0 metadata=1.2 name=localhost:0 UUID=ed1ec896:779ae712:b5496c27:f941c3d0
[root@localhost ~]#
RAID5:
2G: 3, 1G
DM: Device Mapper
逻辑设备
RAID, LVM2
DM: LVM2
快照:实现数据备份
动态扩展硬盘空间
多路径
linux卷管理
http://blog.csdn.net/wuweilong/article/details/7565530
创建PV
Command (m for help): t
Partition number (1-13): 7
Hex code (type L to list codes): 8e (PV类型)
Changed system type of partition 7 to 8e (Linux LVM)
Command (m for help): t
Partition number (1-13): 8
Hex code (type L to list codes): 8e
Changed system type of partition 8 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x31e2db75
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
/dev/sdb4 263 2610 18860310 5 Extended
/dev/sdb5 263 524 2104483+ 83 Linux
/dev/sdb6 525 1178 5253223+ 8e Linux LVM
/dev/sdb7 1179 1310 1060258+ 8e Linux LVM
/dev/sdb8 1311 1442 1060258+ 8e Linux LVM
/dev/sdb9 1443 1574 1060258+ fd Linux raid autodetect
/dev/sdb10 1575 1706 1060258+ fd Linux raid autodetect
/dev/sdb11 1707 1968 2104483+ fd Linux raid autodetect
/dev/sdb12 1969 2230 2104483+ fd Linux raid autodetect
/dev/sdb13 2231 2492 2104483+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@localhost ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x0004cc30
Device Boot Start End Blocks Id System
/dev/sda1 * 1 39 307200 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 39 2350 18566144 83 Linux
/dev/sda3 2350 2611 2097152 82 Linux swap / Solaris
Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x31e2db75
Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 83 Linux
/dev/sdb4 263 2610 18860310 5 Extended
/dev/sdb5 263 524 2104483+ 83 Linux
/dev/sdb6 525 1178 5253223+ 8e Linux LVM
/dev/sdb7 1179 1310 1060258+ 8e Linux LVM
/dev/sdb8 1311 1442 1060258+ 8e Linux LVM
/dev/sdb9 1443 1574 1060258+ fd Linux raid autodetect
/dev/sdb10 1575 1706 1060258+ fd Linux raid autodetect
/dev/sdb11 1707 1968 2104483+ fd Linux raid autodetect
/dev/sdb12 1969 2230 2104483+ fd Linux raid autodetect
/dev/sdb13 2231 2492 2104483+ fd Linux raid autodetect
Disk /dev/md127: 2168 MB, 2168455168 bytes
2 heads, 4 sectors/track, 529408 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x00000000
[root@localhost ~]#
[root@localhost ~]# pvcreate /dev/sdb7 /dev/sdb6 (创建PV)
Physical volume "/dev/sdb7" successfully created
Physical volume "/dev/sdb6" successfully created
[root@localhost ~]# pvs (简单查看PV信息)
PV VG Fmt Attr PSize PFree
/dev/sdb6 lvm2 --- 5.01g 5.01g
/dev/sdb7 lvm2 --- 1.01g 1.01g
[root@localhost ~]#
[root@localhost ~]# pvdisplay
"/dev/sdb6" is a new physical volume of "5.01 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb6
VG Name
PV Size 5.01 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID z1Mvsy-DMq8-ms3D-rmbS-i7ge-IErh-nBSzRU
"/dev/sdb7" is a new physical volume of "1.01 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb7
VG Name
PV Size 1.01 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID JtgqEC-CJsi-aif0-BjxI-RP2I-TNQ2-w8ExTa
[root@localhost ~]#
[root@localhost ~]# pvscan (当前系统所有PV)
PV /dev/sdb6 lvm2 [5.01 GiB]
PV /dev/sdb7 lvm2 [1.01 GiB]
Total: 2 [6.02 GiB] / in use: 0 [0 ] / in no VG: 2 [6.02 GiB]
[root@localhost ~]#
创建vg
[root@localhost ~]# vgcreate myvg /dev/sdb6 /dev/sdb7 (创建myvg)
Volume group "myvg" successfully created
[root@localhost ~]# vgdisplay myvg
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 6.02 GiB
PE Size 4.00 MiB
Total PE 1540
Alloc PE / Size 0 / 0
Free PE / Size 1540 / 6.02 GiB
VG UUID eMVIAZ-GOr5-Dqtd-5RHj-psXZ-UeFr-oBfMjc
[root@localhost ~]# pvdisplay /dev/sdb6 (查看vg)
--- Physical volume ---
PV Name /dev/sdb6
VG Name myvg
PV Size 5.01 GiB / not usable 2.10 MiB
Allocatable yes
PE Size 4.00 MiB (PE大小默认为4M)
Total PE 1282
Free PE 1282
Allocated PE 0
PV UUID z1Mvsy-DMq8-ms3D-rmbS-i7ge-IErh-nBSzRU
[root@localhost ~]#
[root@localhost ~]# vgremove myvg (移除vg)
Volume group "myvg" successfully removed
[root@localhost ~]# vgcreate -s 8M myvg /dev/sdb6 /dev/sdb7 (创建VG,PE设置为8M)
Volume group "myvg" successfully created
Skipping volume group myvg]
[root@localhost ~]# vgdisplay myvg
--- Volume group ---
VG Name myvg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 6.02 GiB
PE Size 8.00 MiB
Total PE 770
Alloc PE / Size 0 / 0
Free PE / Size 770 / 6.02 GiB
VG UUID HxUuci-I1aU-qUTS-SDoV-Eagj-WGUw-MIfTdK
[root@localhost ~]#
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb6 myvg lvm2 a-- 5.01g 5.01g
/dev/sdb7 myvg lvm2 a-- 1.01g 1.01g
[root@localhost ~]# pvmove /dev/sdb7 (移除/dev/sdb7 pv中的数据)
No data to move for myvg
[root@localhost ~]# vgreduce myvg /dev/sdb7 (将/devsdb7从myvg移除)
Removed "/dev/sdb7" from volume group "myvg"
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 1 0 0 wz--n- 5.01g 5.01g
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb6 myvg lvm2 a-- 5.01g 5.01g
/dev/sdb7 lvm2 --- 1.01g 1.01g
[root@localhost ~]#
[root@localhost ~]# vgextend myvg /dev/sdb7 (扩展vg中的数据)
Volume group "myvg" successfully extended
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 0 0 wz--n- 6.02g 6.02g
[root@localhost ~]#
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 0 0 wz--n- 6.02g 6.02g
[root@localhost ~]# pvdisplay /dev/sdb6 (pv加入vg后,pe无法改变)
--- Physical volume ---
PV Name /dev/sdb6
VG Name myvg
PV Size 5.01 GiB / not usable 2.10 MiB
Allocatable yes
PE Size 8.00 MiB
Total PE 641
Free PE 641
Allocated PE 0
PV UUID z1Mvsy-DMq8-ms3D-rmbS-i7ge-IErh-nBSzRU
[root@localhost ~]#
创建lv
[root@localhost ~]# lvcreate -L 128M -n mylv myvg (创建128M的lv为mylv)
Logical volume "mylv" created
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 128.00m
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/myvg/mylv
LV Name mylv
VG Name myvg
LV UUID 0ckBC6-VCtf-9V2N-m73K-NjfW-xD3r-9UuE0G
LV Write Access read/write
LV Creation host, time localhost, 2017-02-25 18:27:45 -0800
LV Status available
# open 0
LV Size 128.00 MiB
Current LE 16
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
[root@localhost ~]# mke2fs -j /dev/myvg/mylv (lv创建文件系统)
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
32768 inodes, 131072 blocks
6553 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
16 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mount /dev/myvg/mylv /mnt (挂载lv设备)
[root@localhost ~]# ls /mnt/
lost+found
[root@localhost ~]# mount
/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/myvg-mylv on /mnt type ext3 (rw)
[root@localhost ~]# ls /dev/mapper/ (lv设备实际目录)
control myvg-mylv
[root@localhost ~]# ll -l /dev/myvg/
total 0
lrwxrwxrwx. 1 root root 7 Feb 25 18:29 mylv -> ../dm-0
[root@localhost ~]# ll -l /dev/myvg/mylv
lrwxrwxrwx. 1 root root 7 Feb 25 18:29 /dev/myvg/mylv -> ../dm-0
[root@localhost ~]# lvremove /dev/mapper/myvg-mylv (先卸载lv设备,才能移除lv)
Logical volume myvg/mylv contains a filesystem in use.
[root@localhost ~]# umount /mnt/
[root@localhost ~]# lvremove /dev/myvg/mylv
Do you really want to remove active logical volume mylv? [y/n]: y
Logical volume "mylv" successfully removed
[root@localhost ~]# lvs
[root@localhost ~]#
不影响数据使用的前提下:
扩展lv(先扩展lv,再扩展fs),风险比较小
lvextend
resize2fs
[root@localhost ~]# lvcreate -L 2G -n mylv myvg (创建myvg,大小为2G)
Logical volume "mylv" created
[root@localhost ~]# mke2fs -j /dev/myvg/mylv (myvg创建文件系统)
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
[root@localhost ~]# mkdir /mydir
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 2.00g
[root@localhost ~]# vim /etc/fstab (自动挂载mylv)
[root@localhost ~]# mount -a
[root@localhost ~]# mount
/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/myvg-mylv on /mydir type ext3 (rw)
[root@localhost ~]# cd /mydir/
[root@localhost mydir]# ll
total 16
drwx------. 2 root root 16384 Feb 25 19:04 lost+found
[root@localhost mydir]# cp /etc/inittab .
[root@localhost mydir]# cat inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
[root@localhost mydir]# cd
[root@localhost ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 3.1G 14G 19% /
tmpfs 931M 72K 931M 1% /dev/shm
/dev/sda1 283M 33M 236M 13% /boot
/dev/mapper/myvg-mylv
2.0G 68M 1.9G 4% /mydir
[root@localhost ~]# lvextend -L 5G /dev/myvg/mylv (在线扩展lv)
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
myvg 2 1 0 wz--n- 6.02g 4.02g
[root@localhost ~]# lvextend -L 5G /dev/myvg/mylv
Size of logical volume myvg/mylv changed from 2.00 GiB (256 extents) to 5.00 GiB (640 extents).
Logical volume mylv successfully resized
[root@localhost ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 3.1G 14G 19% /
tmpfs 931M 72K 931M 1% /dev/shm
/dev/sda1 283M 33M 236M 13% /boot
/dev/mapper/myvg-mylv
2.0G 68M 1.9G 4% /mydir
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-ao---- 5.00g
[root@localhost ~]# resize2fs -p /dev/myvg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /mydir; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to 1310720 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1310720 blocks long.
[root@localhost ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 3.1G 14G 19% /
tmpfs 931M 72K 931M 1% /dev/shm
/dev/sda1 283M 33M 236M 13% /boot
/dev/mapper/myvg-mylv
5.0G 69M 4.7G 2% /mydir
[root@localhost ~]# cd /mydir/
[root@localhost mydir]# ll
total 20
-rw-r--r--. 1 root root 884 Feb 25 19:06 inittab
drwx------. 2 root root 16384 Feb 25 19:04 lost+found
[root@localhost mydir]# cat inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
[root@localhost mydir]#
缩减lv(先缩减fs,再扩展lv)
注意:1、不能在线缩减,得先卸载;
2、确保缩减后的空间大小依然能存储原有的所有数据;
3、在缩减之前应该先强行检查文件,以确保文件系统处于一至性状态;
root@localhost mydir]# umount /mydir/
umount: /mydir: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@localhost mydir]# mount
/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/myvg-mylv on /mydir type ext3 (rw)
[root@localhost mydir]# cd
[root@localhost ~]# umount /mydir/ (先卸载)
[root@localhost ~]# mount
/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
[root@localhost ~]# e2fsck -f /dev/myvg/mylv (一致性检查)
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/myvg/mylv: 12/327680 files (0.0% non-contiguous), 38000/1310720 blocks
[root@localhost ~]# resize2fs /dev/myvg/mylv 3G (缩减fs为3G)
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 786432 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 786432 blocks long.
[root@localhost ~]# lvreduce -L 3G /dev/myvg/mylv (再缩减mylv为3G)
WARNING: Reducing active logical volume to 3.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
Size of logical volume myvg/mylv changed from 5.00 GiB (640 extents) to 3.00 GiB (384 extents).
Logical volume mylv successfully resized
[root@localhost ~]# mount -a
[root@localhost ~]# mount
/dev/sda2 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,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/myvg-mylv on /mydir type ext3 (rw)
[root@localhost ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 18G 3.1G 14G 19% /
tmpfs 931M 72K 931M 1% /dev/shm
/dev/sda1 283M 33M 236M 13% /boot
/dev/mapper/myvg-mylv
3.0G 68M 2.8G 3% /mydir
[root@localhost ~]# cd /mydir/
[root@localhost mydir]# cat inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
[root@localhost mydir]#
快照卷常用于数据备份
[root@localhost ~]# lvcreate -L 128M -n mysnap -s -p r /dev/myvg/mylv (创建mysnap,大小为128M)
Logical volume "mysnap" created
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg owi-aos--- 3.00g
mysnap myvg sri-a-s--- 128.00m mylv 0.01
[root@localhost ~]# mount /dev/myvg/mysnap /mnt/ (挂载mysnap)
mount: block device /dev/mapper/myvg-mysnap is write-protected, mounting read-only
[root@localhost ~]# ll /mnt/
total 20
-rw-r--r--. 1 root root 884 Feb 25 19:06 inittab
drwx------. 2 root root 16384 Feb 25 19:04 lost+found
[root@localhost ~]# cat inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
[root@localhost ~]#
[root@localhost ~]# tar jcf /tmp/mydir.tar.bz2 inittab (备份mysnap中数据)
[root@localhost ~]# umount /mnt/
[root@localhost ~]# lvremove /dev/myvg/mysnap (移除快照mysnap)
Do you really want to remove active logical volume mysnap? [y/n]: y
Logical volume "mysnap" successfully removed
[root@localhost ~]# cd /mydir/
[root@localhost mydir]# ll
total 20
-rw-r--r--. 1 root root 884 Feb 25 19:06 inittab
drwx------. 2 root root 16384 Feb 25 19:04 lost+found
[root@localhost mydir]# rm inittab (数据丢失后,使用快照卷进行数据恢复)
rm: remove regular file `inittab‘? y
[root@localhost mydir]# tar xf /tmp/mydir.tar.bz2 -C ./
[root@localhost mydir]# ll
total 20
-rw-r--r--. 1 root root 884 Feb 22 17:38 inittab
drwx------. 2 root root 16384 Feb 25 19:04 lost+found
[root@localhost mydir]#
原文地址:http://f1yinsky.blog.51cto.com/12568071/1902806