Linux磁盘管理
硬盘可以分成若干个分区,每个分区可视为独立的磁盘来使用。硬盘的分区方案被记录到“磁盘分区表”中,通常该表由4个部分组成,每个部分定义一个分区的信息,因此原始概念中一个硬盘最多只能建立4个分区,称为“主分区”。由于硬盘越来越大,4个分区已不无法满足用户的需要,为此引入“扩展分区”的概念。扩展分区由扩展磁盘分区表维护,可以把某个主分区作为扩展分区划分为若干更小的“逻辑分区”。理论上,硬盘空间足够时,可以建立任意数量的分区。
Linux上建议的分区有:swap分区,即虚拟内存;boot分区,存放操作系统的内核;根分区,整个操作系统的根目录;/var分区,可以避免日志文件的大小失控;/home分区,控制用户占用的空间大小。
文件系统
文件系统用户在硬件存储设备中执行的文件建立、写入、读取、修改、转存与控制等操作都是依靠文件系统来完成的文件系统的作用是合理规划硬盘,以保证用户正常的使用需求。Linux系统支持数十种的文件系统,而常见的文件系统如下
文件系统 | 说明 |
---|---|
Ext3 | 日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与 错误。早是从Ext2开始的 |
Ext4 | Ext3的改进版本,作为Centos 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录 |
Xfs | 高性能的日志文件系统,而且是Centos 7中默认的文件管理系统,优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它大可支持的存储容量为18EB,满足了所有需求 |
常用的磁盘管理命令
命令 | 作用 |
---|---|
badblocks | 检查设备坏块 |
(-s 显示检查进度) | |
du | 统计文件和目录占用的磁盘空间 |
(如果没有指定文件或目录名,则默认对当前目录进行统计。-s仅显示文件或目录占用的块数,默认一块等于1024字节。-b以字节为单位进行统计;-k以1024字节为单位;-m以1024K为单位;-c同时显示总计;-h按需显示K、M或G。-a显示所有文件及其子目录占用的数据块数。) | |
df | 显示文件系统磁盘空间使用情况 |
(不指定文件系统的话,则显示所有当前挂载的文件系统的可用空间。默认情况下空间以1KB为单位进行显示,除非环境变量POSIXLY_CORRECT被指定,此时以512字节为单位。-i以inode模式显示,列出的都为 inode数量;-h以可读方式显示,按需显示K、M或G;-t type只显示指定文件系统的信息,如df -t ext3;-x type与-t相反,不显示指定的磁盘类型的磁盘。) | |
fdformat | 格式化磁盘 |
(-n表示格式化完成后不进行验证。) | |
hdparam | 显示和设定硬盘参数 |
(-C显示电源管理,-d 1开启DMA模式。例:hdparm /dev/sda1。) | |
mkfs | 设置磁盘的文件系统 |
(例:mkfs -t ext4 /dev/sda2。) | |
mkswap | 设置交换分区(swap area) |
(例:mkswap /dev/hda4,将hda4指定为一个新式的交换分区。-c在创建交换分区前检查坏块;-v0建立一个旧式的交换区,-v1建立一个新式的交换区。) | |
mkisofs | 建立ISO9660/JOLIET/HTS文件系统 |
(例:mkisofs -o myiso myfile把myfile制作为名为myiso的镜像文件。) | |
mkinitrd | 创建ramdisk的镜像文件。(例:mkinitrd myfile.img 2.2.5-15建立名为myfile.img、内核号为2.2.5-15的镜像文件。ubuntu上不支持。) |
mt | 磁带驱动操作 |
(语法:mt operation device。操作有rewind、erase等。rmt命令是远端磁带传输协议模块,可以通过进程间通信,远程控制磁带机进行备份、恢复备份操作。) | |
mzip | 弹出Zip/Jaz设备中的磁盘 |
(-e弹出磁盘;-f与-e同时使用强制弹出;-q查询状态。) | |
sync | 将缓冲区内的数据写入磁盘 |
(在卸载移动硬盘前,可用sync把内存数据写入磁盘。) | |
rsync | 远程同步 |
(例:rsync -av -e ssh /home/share/*.doc [email protected]:/usr/local/share通过ssh把/home/share下的所有doc文件备份到了 teacher主机的/usr/local/share目录下。只同步修改过的文件和目录。-a归档模式;-v:冗余模式。) |
mount
参数 | 作用 |
---|---|
-a | 安装在/etc/fstab文件中类出的所有文件系统。 |
-f | 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。 |
-n | 不把安装记录在/etc/mtab 文件中。 |
-r | 讲文件系统安装为只读。 |
-v | 详细显示安装信息。 |
-w | 将文件系统安装为可写,为命令默认情况。 |
-t | 指定设备的文件系统类型,常见的有: |
ext2 | linux目前常用的文件系统 |
msdos | MS-DOS的fat,就是fat16 |
vfat | windows98常用的fat32 |
nfs | 网络文件系统 |
iso9660 | CD-ROM光盘标准文件系统 |
ntfs | windows NT/2000/XP的文件系统 |
auto | 自动检测文件系统 |
mount -o 指定挂载文件系统时的选项,有些也可写到在/etc/fstab中,具体参数如下:
注:挂载点必须是一个已经存在的目录,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。使用多个-o参数的时候,-o 只用一次,参数之间用半角逗号隔开:
参数 | 作用 |
---|---|
defaults | 使用所有选项的默认值(auto、nouser、rw、suid) |
auto/noauto | 允许/不允许以 –a选项进行安装 |
dev/nodev | 对/不对文件系统上的特殊设备进行解释 |
exec/noexec | 允许/不允许执行二进制代码 |
suid/nosuid | 确认/不确认suid和sgid位 |
user /nouser | 允许/不允许一般用户挂载 |
codepage=XXX | 代码页 |
iocharset=XXX | 字符集 |
ro | 以只读方式挂载 |
rw | 以读写方式挂载 |
remount | 重新安装已经安装了的文件系统 |
loop | 挂载回旋设备 |
磁盘管理相关命令:
free #用于检测内存使用情况
free -h
du #disk usage,用于检测磁盘目录使用情况
du -sh
df #disk free,用于检测空间大小的信息
df -Th
dumpe2fs #用于检测ext2/ext3/ext4文件系统信息
blkid #用于显示挂载目录及UUID信息
lsblk #用于显示系统下所有磁盘与分区信息
parted #用于显示分区表类型与信息
fdisk #磁盘分区工具
partprobe #用于更新Linux 核心的分区表信息
partprobe -s
mkfs #格式化工具,这是一个综合命令
mkfs.xfs /dev/sda2 #以xfs文件系统格式化
msfs.ext4 /dev/sda2 #以ext4文件系统格式化
xfs_repair #处理修复xfs文件系统
fsck.ext4 #处理修复ext文件系统
mkswap /dev/sda2 #创建swap分区
自动挂载
如何把光盘自动挂载到/mnt目录下?编辑/etc/fstab文件,在最后一行添加如下命令:
vi /etc/fstab
/dev/sr0 /mnt iso9660 defaults 0 0
RAID管理及创建
RAID(Redundant Array of Inexpensive Disks)独立冗余磁盘阵列硬盘设备需要进行持续、频繁、大量的IO操作,相较于其他设备,其损坏几率也大幅增加,导致重要数据丢失的几率也随之增加,随着而来就产生了RAID的概念,RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果RAID分类:
- 硬RAID,性能较高。他们采用PCI Express 卡物理地提供有专用的RAID控制器。它不会使用主机资源。他们有NVRAM用于缓存的读取和写入。缓存用于RAID重建时,即使出现电源故障,它会使用后备的电池电源保持缓存
- 软RAID,性能较低,因为其使用主机的资源。需要加载RAID软件以从软件RAID卷中读取数据。在加载RAID软件前,操作系统需要引导起来才能加载RAID软件。在软件RAID中无需物理硬件。零成本投资
RAID特点:
- 成本低,功耗小,传输速率高。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个的磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。而RAID最后成功了。
- 可以提供容错功能,这是大多数使用RAID的第二个原因。因为,普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID和容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它可以提供更高的安全性。
- RAID比起传统的大直径磁盘驱动器来,在同样的容量下,价格要低许多。
RAID主要分为以下级别:
级别 | 作用及特点 |
---|---|
RAID0 | stripe,不含校验与冗余的条带存储,无备份。多块磁盘组合为RAID 0后,每块磁盘都将会被分割为小区快(chunk),而数据会被分割成块 的大小,然后依序交错的存放到不同的磁盘中。 |
读写性能有提升,冗余能力无,空间利用率100%,至少需要2块磁盘 | |
RAID1 | mirror,不含校验的镜像存储 ,完整备份。多块磁盘组合为RAID 1后,数据将被同时复制到每块磁盘。 |
读性能有提升,写性能下降,冗余能力有,空间利用率50%,至少需要2块磁盘 | |
RAID5 | 数据块级别的分布式校验条带存储 ,性能与数据备份的均衡考虑。多块磁盘组合为RAID 5后,数据将以块为单位同步式分别存储在不同的磁盘上,在数据写入过程中,在每块磁盘还循环加入一个同位检验数据(parity),这个数据会记录其他磁盘的备份数据,用于有磁盘损坏时的救援,不过默认仅能支持一块磁盘的损毁情况。 |
读写性能有提升,冗余能力有,空间利用率(n-1)/n,至少需要3块磁盘 | |
RAID01 | 条带+镜像存储。Disk0与Disk1组成第一组RAID 0,Disk2与Disk3组成第二组RAID 0,然后这两组再整合成 为一组RAID 1 |
读写性能有提升,冗余能力有,空间利用率50%,至少需要4块盘 | |
RAID10 | 镜像+条带存储。Disk0与Disk1组成第一组RAID 1,Disk2与Disk3组成第二组RAID 1,然后这两组再整合成 为一组RAID 0 |
mdadm
参数 | 作用 |
---|---|
-a | 检测设备名称 |
-A | 添加新设备 |
-n | 指定设备数量 |
-l | 指定RAID级别 |
-C | 创建 |
-v | 显示过程 |
-f | 模拟设备损坏 |
-r | 移除设备 |
-Q | 查看摘要信息 |
-D | 查看详细信息 |
-S | 停止RAID磁盘阵列 |
测试:
1.mdadm命令创建RAID10 名为md0,关闭虚拟机新添加4块硬盘,使用ext4文件系统进行测试
[root@linux ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 5238784K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@linux ~]# mkfs.ext4 /dev/md0
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=128 blocks, Stripe width=256 blocks
655360 inodes, 2619392 blocks
130969 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
[root@linux ~]# mkdir /RAID
[root@linux ~]# mount /dev/md0 /RAID/
[root@linux ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 23 18:57:44 2018
Raid Level : raid10
Array Size : 10477568 (9.99 GiB 10.73 GB)
Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 23 18:59:15 2018
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : linux:0 (local to host linux)
UUID : 5afafa01:17d82b94:46a20071:c456c653
Events : 19
Number Major Minor RaidDevice State
0 8 16 0 active sync set-A /dev/sdb
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
[root@linux ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
[root@linux ~]# mount -a
[root@linux ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 35.8G 0 part /
sdb 8:16 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10 /RAID
sdc 8:32 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10 /RAID
sdd 8:48 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10 /RAID
sde 8:64 0 5G 0 disk
└─md0 9:0 0 10G 0 raid10 /RAID
sr0 11:0 1 4.2G 0 rom
2.模拟一块磁盘损坏:
[root@linux ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@linux ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 23 18:57:44 2018
Raid Level : raid10
Array Size : 10477568 (9.99 GiB 10.73 GB)
Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 23 19:01:25 2018
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : linux:0 (local to host linux)
UUID : 5afafa01:17d82b94:46a20071:c456c653
Events : 21
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
0 8 16 - faulty /dev/sdb
[root@linux ~]# umount /RAID/
[root@linux ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: Cannot open /dev/sdb: Device or resource busy
[root@linux ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 23 18:57:44 2018
Raid Level : raid10
Array Size : 10477568 (9.99 GiB 10.73 GB)
Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Tue Oct 23 19:02:05 2018
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : linux:0 (local to host linux)
UUID : 5afafa01:17d82b94:46a20071:c456c653
Events : 23
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync set-B /dev/sdc
2 8 48 2 active sync set-A /dev/sdd
3 8 64 3 active sync set-B /dev/sde
0 8 16 - faulty /dev/sdb
[root@linux ~]# mount -a
[root@linux ~]# mdadm -r /dev/sdb
mdadm: /dev/sdb does not appear to be an md device
[root@linux ~]# mdadm -a /dev/sdb
mdadm: /dev/sdb does not appear to be an md device
[root@linux ~]# mount -a
LVM的管理与使用
硬盘设备管理技术虽然能够有效地提高硬盘设备的读写速度以及数据的安全性,但是在硬盘分好区或者部署 为RAID磁盘阵列之后,再想修改硬盘分区大小就不容易了,此时需要使用LVM。LVM(Logical volume Manager)逻辑卷管理通过将底层物理硬盘抽象封装起来,以逻辑卷的形式表现给上 层系统,逻辑卷的大小可以动态调整,而且不会丢失现有数据。新加入的硬盘也不会改变现有上层的逻辑 卷。作为一种动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
PV(Physical Volume)- 物理卷,物理卷在逻辑卷管理中处于底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备
VG(Volumne Group)- 卷组,卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组
LV(Logical Volume)- 逻辑卷,逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组 PE(physical extent),每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的小单元。PE的大小是可配置的,默认为4MB
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
扫描 | pvscan | vgscan | lvscan |
建立 | pvcreate | vgcreate | lvcreate |
显示 | pvdisplay | vgdisplay | lvdisplay |
删除 | pvremove | vgremove | lvremove |
扩展 | vgextend | lvextend | |
缩小 | vgreduce | lvreduce |
测试:
#创建逻辑卷,关闭虚拟机新添加2块硬盘
pv--->vg--->lvm pvcreate /dev/sdb /dev/sdc #创建物理卷
vgcreate storage /dev/sdb /dev/sdc #两块硬盘加入storage卷组中 vgdisplay #vgs也可查询
lvcreate -n vo -L 150m storage #创建150mb的逻辑卷名为vo
lvdisplay #lvs也可查询
mkfs.ext4 /dev/storage/vo
mkdir /lvm
mount /dev/storage/vo /lvm
df -Th
echo "/dev/storage/vo /lvm ext4 defaults 0 0" >> /etc/fstab
#扩容逻辑卷为300mb
#只要卷组中有足够的资源,就可以一直为逻辑卷扩容
umount /lvm
lvextend -L 300M /dev/storage/vo
e2fsck -f /dev/storage/vo #检测磁盘
mount -a
df -Th
#缩小逻辑卷
umount /lvm
e2fsck -f /dev/storage/vo
resize2fs /dev/storage/vo 150m
lvreduce -L 150m /dev/storage/vo
mount -a df -Th
#逻辑卷快照
#LVM还具备有“快照卷”功能,该功能类似于虚拟机软件的还原时间点功能
#快照两个特点:快照卷的容量必须等同于逻辑卷的容量 #快照卷仅一次有效,一旦执行还原操作后则会被立即自动删除
vgdisplay #注意空间使用量!
echo "lvm test" > /lvm/readme.txt
ls -l /lvm
lvcreate -L 150m -s -n SNAP /dev/storage/vo #生成150m快照,名为snap
lvdisplay
dd if=/dev/zero of=/lvm/files count=1 bs=100M #dd 用指定大小的块拷贝一个文件
#/dev/zero是一个输入设备,用它来初始化文件,count块,bs块大小
umount /lvm
lvconvert --merge /dev/storage/SNAP #逻辑卷进行快照还原
mount -a
ls /lvm #刚才创建的100M文件已不存在,快照卷会自动删除
#删除逻辑卷
#提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,顺序不可颠倒!
umount /lvm
vi /etc/fstab #删除之前的自动挂载
lvremove /dev/storage/vo
vgremove storage
pvremove /dev/sdb /dev/sdc
在RAID 5 阵列的基础上进行lvm操作,划分逻辑卷
添加四块物理硬盘,sdb,sdc,sdd,sde,将前三快部署为RAID 5 阵列,第四块作为一块热备盘挂载。
[root@linux ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 35.8G 0 part /
sdb 8:16 0 5G 0 disk
sdc 8:32 0 5G 0 disk
sdd 8:48 0 5G 0 disk
sde 8:64 0 5G 0 disk
sr0 11:0 1 4.2G 0 rom
[root@linux ~]# mdadm -Cv /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sd{b,c,d,e}
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: /dev/sdb appears to be part of a raid array:
level=raid5 devices=4 ctime=Wed Oct 31 16:04:06 2018
mdadm: /dev/sdc appears to be part of a raid array:
level=raid5 devices=4 ctime=Wed Oct 31 16:04:06 2018
mdadm: /dev/sdd appears to be part of a raid array:
level=raid5 devices=4 ctime=Wed Oct 31 16:04:06 2018
mdadm: /dev/sde appears to be part of a raid array:
level=raid5 devices=4 ctime=Wed Oct 31 16:04:06 2018
mdadm: size set to 5238784K
Continue creating array? m^H
Continue creating array? (y/n) y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@linux ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 31 16:07:40 2018
Raid Level : raid5
Array Size : 10477568 (9.99 GiB 10.73 GB)
Used Dev Size : 5238784 (5.00 GiB 5.36 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Oct 31 16:07:47 2018
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 4
Failed Devices : 0
Spare Devices : 2
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 26% complete
Name : linux:0 (local to host linux)
UUID : 97046716:c9927ed6:bf665ce3:871f8f5f
Events : 5
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 spare rebuilding /dev/sdd
3 8 64 - spare /dev/sde
[root@linux ~]# mkdir /RAID
[root@linux ~]# mount /dev/md0 /RAID/
[root@linux ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
[root@linux ~]# mount -a
[root@linux ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 35.8G 0 part /
sdb 8:16 0 5G 0 disk
└─md0 9:0 0 15G 0 raid5 /RAID
sdc 8:32 0 5G 0 disk
└─md0 9:0 0 15G 0 raid5 /RAID
sdd 8:48 0 5G 0 disk
└─md0 9:0 0 15G 0 raid5 /RAID
sde 8:64 0 5G 0 disk
└─md0 9:0 0 15G 0 raid5 /RAID
sr0 11:0 1 4.2G 0 rom
在已经挂载好的RAID阵列上创建lvm逻辑卷,大小为500M
[root@linux ~]# pv
pvchange pvcreate pvmove pvresize pvscan
pvck pvdisplay pvremove pvs
[root@linux ~]# pvcreate /dev/md0
WARNING: ext4 signature detected on /dev/md0 at offset 1080. Wipe it? [y/n]: y
Wiping ext4 signature on /dev/md0.
Physical volume "/dev/md0" successfully created.
[root@linux ~]# vgcreate storage /dev/md0
Volume group "storage" successfully created
[root@linux ~]# vgs
VG #PV #LV #SN Attr VSize VFree
storage 1 0 0 wz--n- <9.99g <9.99g
[root@linux ~]# lvcreate -n vo -L 500M storage
l Logical volume "vo" created.
[root@linux ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
vo storage -wi-a----- 500.00m
[root@linux ~]# mkfs.ext4 /dev/storage/vo
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=512 blocks, Stripe width=1024 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
[root@linux ~]# mkdir /lvm
[root@linux ~]# mount /dev/storage/vo /lvm/
[root@linux ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 xfs 36G 1.3G 35G 4% /
devtmpfs devtmpfs 902M 0 902M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 8.7M 904M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 113M 85M 58% /boot
tmpfs tmpfs 183M 0 183M 0% /run/user/0
/dev/mapper/storage-vo ext4 477M 2.3M 445M 1% /lvm
[root@linux ~]# echo "/dev/storage/vo /lvm ext4 defaults 0 0" >> /etc/fstab
[root@linux ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 4G 0 part [SWAP]
└─sda3 8:3 0 35.8G 0 part /
sdb 8:16 0 5G 0 disk
└─md0 9:0 0 10G 0 raid5
└─storage-vo 253:0 0 500M 0 lvm /lvm
sdc 8:32 0 5G 0 disk
└─md0 9:0 0 10G 0 raid5
└─storage-vo 253:0 0 500M 0 lvm /lvm
sdd 8:48 0 5G 0 disk
└─md0 9:0 0 10G 0 raid5
└─storage-vo 253:0 0 500M 0 lvm /lvm
sde 8:64 0 5G 0 disk
└─md0 9:0 0 10G 0 raid5
└─storage-vo 253:0 0 500M 0 lvm /lvm
sr0 11:0 1 4.2G 0 rom