首先给虚拟机添加三块硬盘,用来后续操作
查看磁盘信息
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sdc 8:32 0 5G 0 disk
sdd 8:48 0 3G 0 disk
sr0 11:0 1 4.4G 0 rom
创建物理卷 pv ,将物理磁卷转化成物理卷.
[root@localhost ~]# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
[root@localhost ~]# pvs -----查看PV信息可以是pvs,pvscan,pvdisplay
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdb lvm2 --- 10.00g 10.00g
创建卷组 vg
[root@localhost ~]# vgcreate vg1 /dev/sdb ---创建vg
Volume group "vg1" successfully created
[root@localhost ~]# vgs ---查看vg
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 1 0 0 wz--n- <10.00g <10.00g
创建逻辑卷
[root@localhost ~]# lvcreate -L +4G vg1 -n lv1
Logical volume "lv1" created.
-L : 指定大小 M G
VG1: 从vg1这拿的空间
-n: 指定名字
[root@localhost ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <17.00g
swap centos -wi-ao---- 2.00g
lv1 vg1 -wi-a----- 4.00g ----给lv1了4G的大小
逻辑卷创建好以后 就是熟悉的套路 格式化 挂载 设置开机自动挂载
格式化
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1073741824
32 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
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
创建挂载点,挂载,设置开机自启
[root@localhost ~]# mkdir /mnt/lv1
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/lv1
[root@localhost ~]# vim /etc/fstab
/dev/vg1/lv1 /mnt/lv1 ext4 defaults 0 0
这是创建了一个EXT4类型的逻辑卷,还可以创建一个xfs类型的逻辑卷lv2
[root@localhost ~]# lvcreate -L 3G vg1 -n lv2 ----创建逻辑卷lv2
Logical volume "lv2" created.
[root@localhost ~]# mkfs.xfs /dev/vg1/lv2 ----格式化
meta-data=/dev/vg1/lv2 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=786432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mkdir /mnt/lv2 ----创建挂载点
[root@localhost ~]# mount /dev/vg1/lv2 /mnt/lv2 ----挂载
[root@localhost ~]# vim /etc/fstab ----设置开机自启
查看文件系统信息,发现成功
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 12M 3.8G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 11G 7.0G 60% /
/dev/sda1 xfs 1014M 195M 820M 20% /boot
tmpfs tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 3.9G 16M 3.6G 1% /mnt/lv1 --------
/dev/mapper/vg1-lv2 xfs 3.0G 33M 3.0G 2% /mnt/lv2 -------
语法: dd if=/dev/zero of=磁盘挂载点下新文件 bs=** M/G count= ***
/dev/zero 是一个取之不尽用之不竭的文件
bs后面跟的是大小 可以是M 可以是G
count 后面跟的是 次数
[root@localhost ~]# dd if=/dev/zero of=/mnt/lv1/a.txt bs=39M count=100
dd: 写入"/mnt/lv1/a.txt" 出错: 设备上没有空间
记录了100+0 的读入
记录了99+0 的写出
4059762688字节(4.1 GB)已复制,19.9588 秒,203 MB/秒
[root@localhost ~]# df -TH
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.1G 0 4.1G 0% /dev
tmpfs tmpfs 4.1G 0 4.1G 0% /dev/shm
tmpfs tmpfs 4.1G 13M 4.1G 1% /run
tmpfs tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 19G 11G 7.5G 60% /
/dev/sda1 xfs 1.1G 204M 860M 20% /boot
tmpfs tmpfs 819M 0 819M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 4.1G 4.1G 0 100% /mnt/lv1 ----------磁盘lv1已满
/dev/mapper/vg1-lv2 xfs 3.3G 34M 3.2G 2% /mnt/lv2
lv1已满,要想让lv1继续能存储信息 需要给他扩容,而它本身就是从vg里拿出空间来使用的,因此我们首先看vg里还有多少空间,查看vg的信息命令是 vgs
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 1 2 0 wz--n- <10.00g <3.00g
语法: lvextend -L + ***G /dev/vg1/lv*
刷新: resize2fs /dev/vg1/lv* 由于lv1的类型是ext4 因此用resize2fs
[root@localhost ~]# lvextend -L +2.9G /dev/vg1/lv1 --------------给lv1扩容
Rounding size to boundary between physical extents: 2.90 GiB.
Size of logical volume vg1/lv1 changed from 4.00 GiB (1024 extents) to 6.90 GiB (1767 extents).
Logical volume vg1/lv1 successfully resized.
[root@localhost ~]# resize2fs /dev/vg1/lv1 -----------刷新
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt/lv1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg1/lv1 is now 1809408 blocks long.
[root@localhost ~]# df -TH -------查看文件系统的信息
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.1G 0 4.1G 0% /dev
tmpfs tmpfs 4.1G 0 4.1G 0% /dev/shm
tmpfs tmpfs 4.1G 13M 4.1G 1% /run
tmpfs tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 19G 11G 7.5G 60% /
/dev/sda1 xfs 1.1G 204M 860M 20% /boot
tmpfs tmpfs 819M 0 819M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 7.2G 4.1G 2.8G 60% /mnt/lv1 ------lv1有空间
/dev/mapper/vg1-lv2 xfs 3.3G 34M 3.2G 2% /mnt/lv2
扩容lv2 ,但是vg已经没有空间 允许我们继续从里面拿取空间,因此想要继续扩容lv2,首先得扩容vg,而vg又是由多个pg组合起来的 因此我们可以将一个新磁盘加入到vg里 也就是给vg扩容
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 1 2 0 wz--n- <10.00g 96.00m ------vg已没有空间
[root@localhost ~]# pvcreate /dev/sdc ----做成物理卷,打上pv的标记
Physical volume "/dev/sdc" successfully created.
[root@localhost ~]# vgextend vg1 /dev/sdc ----给vg扩容
Volume group "vg1" successfully extended
[root@localhost ~]# vgs ------查看vg信息
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <19.00g 0
vg1 2 2 0 wz--n- 14.99g <5.09g -----成功扩容
此时lv2的空间
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 12M 3.8G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 11G 7.0G 60% /
/dev/sda1 xfs 1014M 195M 820M 20% /boot
tmpfs tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 6.7G 3.8G 2.6G 60% /mnt/lv1
/dev/mapper/vg1-lv2 xfs 3.0G 3.0G 29M 100% /mnt/lv2
[root@localhost ~]# lvextend -L +3G /dev/vg1/lv2 -----扩容
Size of logical volume vg1/lv2 changed from 3.00 GiB (768 extents) to 6.00 GiB (1536 extents).
Logical volume vg1/lv2 successfully resized.
[root@localhost ~]# xfs_growfs /dev/vg1/lv2 -----刷新
meta-data=/dev/mapper/vg1-lv2 isize=512 agcount=4, agsize=196608 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=786432, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 786432 to 1572864
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 12M 3.8G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 11G 7.0G 60% /
/dev/sda1 xfs 1014M 195M 820M 20% /boot
tmpfs tmpfs 781M 0 781M 0% /run/user/0
/dev/mapper/vg1-lv1 ext4 6.7G 3.8G 2.6G 60% /mnt/lv1
/dev/mapper/vg1-lv2 xfs 6.0G 3.0G 3.1G 50% /mnt/lv2
swap 也就是虚拟内存
作用: 提升内存的容量,防止OOM(Out Of Memory)
现象是当内存不够的时候内核会随机杀死进程,它认为占用内存多的进程。(内核会先删除占用内存多的进程).
如何制作交换分区?
#我们可以将硬盘空间拿来当作内存来用
什么时候用到交换分区?
#当物理内存不够用的时候使用swap分区,防止物理内存耗尽
扩展知识
swap分区大小设置规则
在Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。
内存小于4GB时,推荐不少于2GB的swap空间;
内存4GB~16GB,推荐不少于4GB的swap空间;
内存16GB~64GB,推荐不少于8GB的swap空间;
内存64GB~256GB,推荐不少于16GB的swap空间。
```
[root@localhost dev]# free -m
total used free shared buff/cache available
Mem: 7802 404 144 11 7254 7088
Swap: 2047 0 2047
[root@localhost dev]# free -h
total used free shared buff/cache available
Mem: 7.6G 403M 145M 11M 7.1G 6.9G
Swap: 2.0G 0B 2.0G
可以通过将一个新的分区 添加到swap ,首先来一块新的磁盘(/dev/sdd),然后进行分区
[root@localhost dev]# fdisk /dev/sdd
sdd 8:48 0 3G 0 disk
└─sdd1 8:49 0 3G 0 part
老步骤 格式化 设置开机自启
swap分区的格式化有所不同: mkswap /dev/sdd1
[root@localhost dev]# mkswap /dev/sdd1
正在设置交换空间版本 1,大小 = 3144700 KiB
无标签,UUID=44d449fb-630f-4747-8b8d-d0c4a01cd11f
[root@localhost dev]# vim /etc/fstab
/dev/sdd1 swap swap defaults 0 0
然后关闭swap分区,查看swap信息
[root@localhost dev]# swapoff -a
[root@localhost dev]# free -m
total used free shared buff/cache available
Mem: 7802 401 145 11 7256 7090
Swap: 0 0 0
激活swap,查看swap信息
[root@localhost dev]# free -m ----这是没有swap扩容时的大小
total used free shared buff/cache available
Mem: 7802 404 144 11 7254 7088
Swap: 2047 0 2047
[root@localhost dev]# swapon -a ----这是对swap扩容后的大小
[root@localhost dev]# free -m
total used free shared buff/cache available
Mem: 7802 405 141 11 7256 7087
Swap: 5118 0 5118
创建以及 格式化
[root@localhost dev]# dd if=/dev/zero of=/opt/swap bs=500M count=10
记录了10+0 的读入
记录了10+0 的写出
5242880000字节(5.2 GB)已复制,6.19374 秒,846 MB/秒
[root@localhost dev]# mkswap /opt/swap
正在设置交换空间版本 1,大小 = 5119996 KiB
无标签,UUID=569e9a04-4adb-4f36-aeea-cbaf59a2285b
编写开机自启文件
[root@localhost ~]# vim /etc/fstab
[root@localhost ~]# swapon -a -----激活swap
swapon: /opt/swap:不安全的权限 0644,建议使用 0600。
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 7802 408 609 11 6785 7084
Swap: 10118 0 10118
[root@localhost ~]# chmod 600 /opt/swap ----给权限
[root@localhost dev]# vim /etc/fstab ----编写配置文件
/opt/swap swap swap defaults 0 0
首先准备一个新的磁盘 /dev/sde
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
或者
/dev/mapper/centos-root xfs 27G 4.0G 23G 15% /
1,将centos看成vg,root当成lv
2, 将mapper看成vg,centos-root当成lv
方式一:将新的磁盘进行分区 fdisk /dev/sde,全部大小都给它
/dev/mapper/centos-root xfs 17G 12G 5.7G 67% /
格式化 mkfs.xfs /dev/sde1
将其做成物理卷,打上pv标记
[root@localhost ~]# pvcreate /dev/sdd
Device /dev/sdd excluded by a filter.
对centos扩容
vgextend centos /dev/sde1
查看
[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 2 0 wz--n- 23.99g <5.00g
在对根分区扩容
lvextend -L +5G /dev/centos/root
[root@localhost ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 970M 0 970M 0% /dev
tmpfs tmpfs 982M 0 982M 0% /dev/shm
tmpfs tmpfs 982M 9.6M 973M 1% /run
tmpfs tmpfs 982M 0 982M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 12G 5.7G 67% / -----
刷新 xfs_growfs /dev/mapper/centos-root
最后查看分区的挂载信息 df -Th即可我。
方式2,直接不分区,将磁盘/dev/sde做成物理卷
pvcreat /dev/sde
给vg扩容: vgextend mapper /dev/sde
给lv扩容L: lvextend -L +4G /dev/mapper/centos-root
刷新: xfsx_growfs /dev/mapper/centos-root
即可。
lvextent -l +100%Free /dev/vg*/lv*
:
1.逻辑卷LVM--(Logical Volume Manager(逻辑卷管理)的简写)
1.1.LVM管理
lvm概念:LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。lvm的特点
#传统分区的缺点: 传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不易改变。当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。 #当采用LVM时: 1.将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间; 2.当磁盘空间不足而加入新的硬盘时,不必将数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。 3.文件系统建立在LVM上,可以跨分区,方便使用; #使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。lvm
1.lvm的制作 2.lvm的使用 3.lvm扩容-------在线扩容。可以在有数据的情况下去扩容。基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载) 逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)1.2.lvm的制作
第一步:拥有基本分区 第二步:做成物理卷: pv ------- sdb1、sdb2 打pv的标记。 第三步:加入卷组: vg-------- 卷组里面包含:sdb1 sdb2,建立在PV之上。 第四步:逻辑卷 lv ------- 逻辑卷是从卷组里面拿空间出来做成的逻辑卷,在起个名,建立在VG之上 第五步:制作文件系统------mkfs.xfs lvm路径 第六步:挂载 ------mount 使用lvm #制作lvm的时候可以是一整块硬盘也可以是硬盘分好的区并且是还没有用的。必须是没有做文件系统的
交换分区管理 Swap---也叫虚拟内存
作用:
·提升·
内存的容量,防止OOM(Out Of Memory)现象是当内存不够的时候内核会随机杀死进程,它认为占用内存多的进程。(内核会先删除占用内存多的进程). 如何制作交换分区? #我们可以将硬盘空间拿来当作内存来用 什么时候用到交换分区? #当物理内存不够用的时候使用swap分区,防止物理内存耗尽扩展知识
swap分区大小设置规则 在Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。 内存小于4GB时,推荐不少于2GB的swap空间; 内存4GB~16GB,推荐不少于4GB的swap空间; 内存16GB~64GB,推荐不少于8GB的swap空间; 内存64GB~256GB,推荐不少于16GB的swap空间
常用于挂载
-o 指定文件系统属性
rw 读写
ro 只读
auto mount -a 开机自动挂载
remount 在线重新挂载
取下挂载 umount /跟你挂载点