shell命令之---LVM文件系统
1、文件系统
现在文件系统主要分为:日志文件系统和写时复制文件系统。
文件系统日志方法
方法 描述
数据模式 索引节点和文件都会被写入日志;丢失数据风险低,但性能差
有序模式 只有索引节点数据会被写入日志,但只有数据成功写入后才删除;在性能和安全性之间取得了良好的折中
回写模式 只有索引节点数据会被写入日志,但不控制文件数据何时写入;丢失数据风险高,但仍比不用日志好
日志文件系统主要包括:ext3文件系统采用有序模式的日志功能、ext4文件系统采用有序模式的日志功能、Reiser文件系统采用回写日志模式 、JFS文件系统采用有序日志模式、XFS文件系统采用回写日志模式。
写时复制文件系统主要包括:ZFS文件系统、Btrf文件系统。
2、操作文件系统
创建分区时,如果创建的新分区显示,可以使用partprob或hdparm命令,让系统读取更新过的分区表。
创建文件系统的命令行程序
工具 用途
mkefs 创建一个ext文件系统
mke2fs 创建一个ext2文件系统
mkfs.ext3 创建一个ext3文件系统
mkfs.ext4 创建一个ext4文件系统
mkreiserfs 创建一个ReiserFS文件系统
jfs_mkfs 创建一个JFS文件系统
mkfs.xfs 创建一个XFS文件系统
mkfs.zfs 创建一个ZFS文件系统
mkfs.btrfs 创建一个Btrfs文件系统
注:mount 这种挂载文件系统的方法只能临时挂载文件系统。当重启Linux系统时,文件系统并不会自动挂载。要强制Linux在启动时自动挂载新的文件系统,可以将其添加到/etc/fstab文件。
3、LVM逻辑卷管理
创建LVM逻辑卷步骤:
a、定义物理卷,将需要创建为LVM的逻辑卷的分区类型调整为8e。
[...] Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdb: 5368 MB, 5368709120 bytes 255 heads, 63 sectors/track, 652 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: 0xa8661341 Device Boot Start End Blocks Id System /dev/sdb1 1 262 2104483+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
b、接下来分区创建实际的物理卷。
# pvcreate /dev/sdb1 dev_is_mpath: failed to get device for 8:17 Physical volume "/dev/sdb1" successfully created
查看创建的信息,可以适用pvdisplay命令来显示已创建的物理卷列表。
# pvdisplay /dev/sdb1 "/dev/sdb1" is a new physical volume of "2.01 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 2.01 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 0FIuq2-LBod-IOWt-8VeN-tglm-Q2ik-rGU2w7
c、创建卷组
# vgcreate Vol1 /dev/sdb1 Volume group "Vol1" successfully created
查看新建的卷组的信息,可以使用vgdisplay命令。
# sudo vgdisplay Vol1 --- Volume group --- VG Name Vol1 System ID Format lvm2 Metadata Areas 1 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 1 Act PV 1 VG Size 2.00 GiB PE Size 4.00 MiB Total PE 513 Alloc PE / Size 0 / 0 Free PE / Size 513 / 2.00 GiB VG UUID oe4I7e-5RA9-G9ti-ANoI-QKLz-qkX4-58Wj6e
d、创建逻辑卷
lvcreate的选项
选项 长选项名 描述
-c --chunksize 指定快照逻辑卷的单位大小
-C --contiguous 设置或重置连续分配策略
-i --stripes 指定条带数
-I --stripesize 指定每个条带的大小
-l --extents 指定分配给新逻辑卷的逻辑区段数,或者要用的逻辑区段的百分比
-L --size 指定分配给新逻辑卷的硬盘大小
--minor 指定设备的次设备号
-m --mirrors 创建逻辑卷镜像
-M --persistent 让次设备号一直有效
-n --name 指定新逻辑卷的名称
-p --permission 为逻辑卷设置读/写权限
-r --readahead 设置预读扇区数
-R --regionsize 指定将镜像分成多大的区
-s snapshot 创建快照逻辑卷
-Z --zero 将新逻辑卷的前1 KB数据设置为零
创建逻辑卷
# lvcreate -l 100%FREE -n lvtest Vol1
Logical volume "lvtest" created
查看创建的逻辑卷的详细情况,可以使用lvdisplay命令。
# lvdisplay Vol1 --- Logical volume --- LV Path /dev/Vol1/lvtest LV Name lvtest VG Name Vol1 LV UUID 4W2369-pLXy-jWmb-lIFN-SMNX-xZnN-3KN208 LV Write Access read/write LV Creation host, time ... -0400 LV Status available LV Size 2.00 GiB Current LE 513 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
-l选项定义了要为逻辑卷指定多少可用的卷组空间。注意,你可以按照卷组空闲空间的百分比来指定这个值。本例中为新逻辑卷使用了所有的空闲空间。
你可以用-l选项来按可用空间的百分比来指定这个大小,或者用-L选项以字节、千字节(KB)、兆字节(MB)或吉字节(GB)为单位来指定实际的大小。 -n选项允许你为逻辑卷指定一个名称(在本例中称作lvtest)。
e、创建文件系统
运行完lvcreate命令之后,逻辑卷就已经产生了,但它还没有文件系统。你必须使用相应的命令行程序来创建所需要的文件系统。
# mkfs.ext4 /dev/Vol1/lvtest 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 131376 inodes, 525312 blocks 26265 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=541065216 17 block groups 32768 blocks per group, 32768 fragments per group 7728 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 28 mounts or 180 days, whichever comes first.Use tune2fs -c or -i to override.
在创建了新的文件系统之后,可以用标准Linux mount命令将这个卷挂载到虚拟目录中,就跟它是物理分区一样。唯一的不同是你需要用特殊的路径来标识逻辑卷。
# mount /dev/Vol1/lvtest /mnt/my_partition
4、修改LVM
Linux LVM命令
命令 功能
vgchange 激活和禁用卷组
vgremove 删除卷组
vgextend 将物理卷加到卷组中
vgreduce 从卷组中删除物理卷
lvextend 增加逻辑卷的大小
lvreduce 减小逻辑卷的大小
5、如何扩大卷组
重新从第二个硬盘上创建一个分区sdb3,并将创建好的分区加入大已经存在的卷组myvg中
6、如何扩大逻辑卷
首先要确定扩展多大,并确定当前逻辑卷所在的卷组有足够的空闲空间可用,扩展时要先扩展物理边界,在扩张逻辑边界
7、如何缩减逻辑卷
确定要缩减为多大?至少能容纳原有的所有数据,逻辑卷缩减有风险,所以要卸载并强行检测文件系统
缩减逻辑卷空间的步骤如下:
1.先卸载逻辑卷/dev/myvg/textlv
2.然后通过e2fsck命令检测逻辑卷上空余的空间
3.使用resize2fs将文件系统减少到3G
4.再使用lvreduce命令将逻辑卷减少到3G
注意,文件系统大小和逻辑卷大小一定要保持一致才行,如果逻辑卷大于文件系统,由于部分区域未格式化成文件系统会造成空间的浪费,如果逻辑卷小于文件系统,那数据就出问题了
8、如何缩减卷组
首先要确定移除的物理卷,将此物理卷上的数据转移至其他的物理卷,然后从卷组中将此物理卷移除
如何创建快照卷
要创建快照要满足三个条件:
1.生命周期为整个数据时长,在这段时长内,数据的增长量不能超出快照卷大小
2.快照卷应该是只读的
3.跟原卷在同一个卷组内
-s 创建快照
-p 指定快照权限为只读r
-n指定快照名称
在对快照进行归档压缩后可以对快照进行删除操作
9、删除逻辑卷,卷组和物理卷
移除物理卷之后可以将这些分区转化成普通的分区,即系统ID为83
10、关于LVM逻辑卷实现磁盘镜像,在这里就不在叙述,请参考同仁的链接,写的非常不错。