先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
- 我先给第一快盘给扩成200g,然后新增一个300g的盘把。
- 注:我在这呢,把说明中的1和2都给做了
- 我上面已经给硬盘扩成200g了,lsblk可以看到sda已经变成200了
并且可以看到/目录对应的是centos-root,所以我们只需要扩centos-root这个lv就是扩根目录了
[root@lv-test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-root 253:0 0 50G 0 lvm /
├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
└─centos-home 253:2 0 41.1G 0 lvm /home
sdb 8:16 0 300G 0 disk
sr0 11:0 1 4.3G 0 rom
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 50.00g
swap centos -wi-ao---- <7.88g
- lv名称锊清楚了,就开始搞吧
做扇区
- 现在可以看到,sda有214G,但实际只用了100g
[root@lv-test ~]# fdisk -l /dev/sda
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00017d4d
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM
[root@lv-test ~]#
- 因为我是要把剩下空间全部给/的,所以我直接把全部剩下空间都划成一个扇区吧
注:需要吧格式给改成linux lvm哦【参数是8e】
[root@lv-test ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00017d4d
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
First sector (209715200-419430399, default 209715200):
Using default value 209715200
Last sector, +sectors or +size{K,M,G} (209715200-419430399, default 419430399):
Using default value 419430399
Partition 3 of type Linux and of size 100 GiB is set
Command (m for help): p
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00017d4d
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM
/dev/sda3 209715200 419430399 104857600 83 Linux
Command (m for help): t
Partition number (1-3, default 3): 3
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux’ to ‘Linux LVM’
Command (m for help): p
Disk /dev/sda: 214.7 GB, 214748364800 bytes, 419430400 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x00017d4d
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 209715199 103808000 8e Linux LVM
/dev/sda3 209715200 419430399 104857600 8e Linux LVM
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@lv-test ~]#
刷新
[root@lv-test ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
[root@lv-test ~]#
可以看到sda3的100g空间了
[root@lv-test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 99G 0 part
│ ├─centos-root 253:0 0 50G 0 lvm /
│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 41.1G 0 lvm /home
└─sda3 8:3 0 100G 0 part
sdb 8:16 0 300G 0 disk
sr0 11:0 1 4.3G 0 rom
[root@lv-test ~]#
增加pv空间
- 现在的pv信息
注:pv实际上都是新增,而不是把空间加到某个已有vp上
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 4.00m
[root@lv-test ~]#
- 现在开始吧我们上面的创建的sda3的100g创成pv
很简单的,都不需要命名,直接pvcreate即可
[root@lv-test ~]# lsblk | grep sda3
└─sda3 8:3 0 100G 0 part
[root@lv-test ~]# pvcreate /dev/sda3
Physical volume “/dev/sda3” successfully created.
[root@lv-test ~]#
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 4.00m
/dev/sda3 lvm2 — 100.00g 100.00g
[root@lv-test ~]#
[root@lv-test ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free]
PV /dev/sda3 lvm2 [100.00 GiB]
Total: 2 [<199.00 GiB] / in use: 1 [<99.00 GiB] / in no VG: 1 [100.00 GiB]
[root@lv-test ~]#
增加vg空间
- 现有vg信息
注:增加vg的时候就需要注意了,如果有多个vg,得确定最终扩容lv所属vg是什么,如:现在扩容的 根目录是在这个 centos的vg下的【因为根目录lv的vg是centos所以我们增加容量必须得增加到这个centos的vg上才行】。
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz–n- <99.00g 4.00m
[root@lv-test ~]#
lvs可以看到需要扩容的vg名称
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 50.00g
swap centos -wi-ao---- <7.88g
[root@lv-test ~]#
- 开始把上面100g的lv空间加到这个centos上
可以看到vg已经变成198g,并且可用是100g了
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz–n- <99.00g 4.00m
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 4.00m
/dev/sda3 lvm2 — 100.00g 100.00g
[root@lv-test ~]#
[root@lv-test ~]# vgextend centos /dev/sda3
Volume group “centos” successfully extended
[root@lv-test ~]#
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 100.00g
[root@lv-test ~]#
增加lv空间
- 扩容前根目录的lv和df看到的信息都是50G,我们需要扩100g,那么最终根会为150G才对
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 50.00g
swap centos -wi-ao---- <7.88g
[root@lv-test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 1.1G 49G 3% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
/dev/mapper/centos-home 42G 33M 42G 1% /home
tmpfs 781M 0 781M 0% /run/user/0
[root@lv-test ~]#
- 开始扩
可以看到扩容后root信息已经变成150G了
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 50.00g
swap centos -wi-ao---- <7.88g
[root@lv-test ~]#
不知道lv名称格式的,可以用lvdisplay 查看详细路径
[root@lv-test ~]# lvextend -L +100G /dev/centos/root
Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 150.00 GiB (38400 extents).
Logical volume centos/root successfully resized.
[root@lv-test ~]#
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 150.00g
swap centos -wi-ao---- <7.88g
[root@lv-test ~]#
- 现在df呢,是看不到150g空间的,需要刷新以后才能看到
刷新之前呢,需要先看这个是啥格式的,如我的根是xfs格式的,那么我就需要用xfs的方式来刷新
[root@lv-test ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/centos-root xfs 50G 1.1G 49G 3% /
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/sda1 xfs 1014M 146M 869M 15% /boot
/dev/mapper/centos-home xfs 42G 33M 42G 1% /home
tmpfs tmpfs 781M 0 781M 0% /run/user/0
[root@lv-test ~]#
xfs的刷新,ext4不能用
一般是用挂载目录作为刷新地址,所以我直接用 /
[root@lv-test ~]# xfs_growfs /
meta-data=/dev/mapper/centos-root isize=512 agcount=4, agsize=3276800 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=13107200, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=6400, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 13107200 to 39321600
刷新后就可以看到/目录空间已经增加了
[root@lv-test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 150G 1.1G 149G 1% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 12M 3.8G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 146M 869M 15% /boot
/dev/mapper/centos-home 42G 33M 42G 1% /home
tmpfs 781M 0 781M 0% /run/user/0
[root@lv-test ~]#
扩容后信息一览和说明
- 其中就pv能看到多了一个空间罢了,其他基本看不出啥
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
[root@lv-test ~]#
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
[root@lv-test ~]#
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 150.00g
swap centos -wi-ao---- <7.88g
[root@lv-test ~]#
- lsblk的话就能看到很多东西了,可以看到sda2下面的centos-root和sda3下面同样有一个centos-root,这2个信息是一摸一样的,别慌这是正常的,表示 centos-root是由 sda2和sda3的空间组成的一个总容量为150G【这时候可以看到sda3有100g,所以可以得知sda2中用了50g】
[root@lv-test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 99G 0 part
│ ├─centos-root 253:0 0 150G 0 lvm /
│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 41.1G 0 lvm /home
└─sda3 8:3 0 100G 0 part
└─centos-root 253:0 0 150G 0 lvm /
sdb 8:16 0 300G 0 disk
sr0 11:0 1 4.3G 0 rom
[root@lv-test ~]#
做扇区
- 做扇区的意义其实还是挺重要的,比如我现在有一个300g的新硬盘,我这次只想用100g,把100g的空间加到某个lv上,剩下的200g先不用。
然后后面200g想用的时候再随时做扇区,这样有规划的使用是不是正规的多?【其实最主要的是如果想把空间增加到不同的vg上,就必须这么做】
如果只有一个vg,那么我们直接把这300g做成一个扇区也无所谓,300g全部划到vg上。lv用多少取多少,只是只能在这一个vg上做罢了,不能跨vg使用这300g容量
- 我这呢准备用2个vg来做实验,方便更能理解vg,所以我扇区先做2个100g的,剩余100g我后面做其他实验用。
现在没有扇区的
[root@lv-test ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@lv-test ~]#
开始增加2个100g空间
[root@lv-test ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x359bff9f.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-629145599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599): +100G
Partition 1 of type Linux and of size 100 GiB is set
Command (m for help): p
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x359bff9f
Device Boot Start End Blocks Id System
/dev/sdb1 2048 209717247 104857600 83 Linux
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (209717248-629145599, default 209717248):
Using default value 209717248
Last sector, +sectors or +size{K,M,G} (209717248-629145599, default 629145599): +100G
Partition 2 of type Linux and of size 100 GiB is set
Command (m for help): p
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x359bff9f
Device Boot Start End Blocks Id System
/dev/sdb1 2048 209717247 104857600 83 Linux
/dev/sdb2 209717248 419432447 104857600 83 Linux
Command (m for help): t
Partition number (1,2, default 2): 1
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux’ to ‘Linux LVM’
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): 8e
Changed type of partition ‘Linux’ to ‘Linux LVM’
Command (m for help): p
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x359bff9f
Device Boot Start End Blocks Id System
/dev/sdb1 2048 209717247 104857600 8e Linux LVM
/dev/sdb2 209717248 419432447 104857600 8e Linux LVM
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@lv-test ~]#
可以看到已经有2个100g空间了,还剩100g
[root@lv-test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 99G 0 part
│ ├─centos-root 253:0 0 150G 0 lvm /
│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 41.1G 0 lvm /home
└─sda3 8:3 0 100G 0 part
└─centos-root 253:0 0 150G 0 lvm /
sdb 8:16 0 300G 0 disk
├─sdb1 8:17 0 100G 0 part
└─sdb2 8:18 0 100G 0 part
sr0 11:0 1 4.3G 0 rom
[root@lv-test ~]#
增加pv空间
- 现在的pv信息
注:pv实际上都是新增,而不是把空间加到某个已有vp上
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
[root@lv-test ~]#
- 现在开始吧我们上面的创建的sdb1和sdb2的100g创成pv
很简单的,都不需要命名,直接pvcreate即可
[root@lv-test ~]# lsblk | grep sdb
sdb 8:16 0 300G 0 disk
├─sdb1 8:17 0 100G 0 part
└─sdb2 8:18 0 100G 0 part
[root@lv-test ~]#
[root@lv-test ~]# pvcreate /dev/sdb1
Physical volume “/dev/sdb1” successfully created.
[root@lv-test ~]# pvcreate /dev/sdb2
Physical volume “/dev/sdb2” successfully created.
[root@lv-test ~]#
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
/dev/sdb1 lvm2 — 100.00g 100.00g
/dev/sdb2 lvm2 — 100.00g 100.00g
[root@lv-test ~]# lsblk | grep sdb
sdb 8:16 0 300G 0 disk
├─sdb1 8:17 0 100G 0 part
└─sdb2 8:18 0 100G 0 part
[root@lv-test ~]#
创建vg和lv【测试用,必看】
-
注意啊,因为我系统只有一个默认的centos的vg,我现在新建一个vg,是为了后面测试说明啊,如果你已有vg和lv,跳过创建,看下面需要扩的挂载目录信息
-
因为现在只有一个系统默认vg,我新建一个vg吧
可以看到,上面创建的2个pv此时是没有绑定vg的,我在这创建一个vg绑定到/sev/sdb1
上,此时再次查看pv,可以看到/dev/sdb1
的这个pv自动给绑定上我刚创建的vg了
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
/dev/sdb1 lvm2 — 100.00g 100.00g
/dev/sdb2 lvm2 — 100.00g 100.00g
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
[root@lv-test ~]#
[root@lv-test ~]# vgcreate vg-test /dev/sdb1
Volume group “vg-test” successfully created
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 1 0 0 wz–n- <100.00g <100.00g
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
/dev/sdb1 vg-test lvm2 a-- <100.00g <100.00g
/dev/sdb2 lvm2 — 100.00g 100.00g
[root@lv-test ~]#
- 然后我们再创建一个lv
#创建前
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 150.00g
swap centos -wi-ao---- <7.88g
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 1 0 0 wz–n- <100.00g <100.00g
[root@lv-test ~]#
[root@lv-test ~]# lvcreate -l 100%free -n lv-test vg-test
Logical volume “lv-test” created.
[root@lv-test ~]#
#可以看到,最下面新增了一个lv,vg名称和上面的不一样哦
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 150.00g
swap centos -wi-ao---- <7.88g
lv-test vg-test -wi-a----- <100.00g
[root@lv-test ~]#
- 格式化这个lv并挂载到任意目录
[root@lv-test ~]# mkfs.xfs /dev/vg-test/lv-test
meta-data=/dev/vg-test/lv-test isize=512 agcount=4, agsize=6553344 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=26213376, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=12799, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@lv-test ~]#
[root@lv-test ~]# mkdir /date-test
[root@lv-test ~]# mount /dev/vg-test/lv-test /date-test/
[root@lv-test ~]#
[root@lv-test ~]# df -h |tail -n 1
/dev/mapper/vg–test-lv–test 100G 33M 100G 1% /date-test
[root@lv-test ~]#
模拟这个lv是在使用的,所以我们随便写点内容进去吧
[root@lv-test ~]# cd /date-test/
[root@lv-test date-test]# ls
[root@lv-test date-test]#
[root@lv-test date-test]# touch ccx{1…66}
[root@lv-test date-test]# ls
ccx1 ccx15 ccx20 ccx26 ccx31 ccx37 ccx42 ccx48 ccx53 ccx59 ccx64
ccx10 ccx16 ccx21 ccx27 ccx32 ccx38 ccx43 ccx49 ccx54 ccx6 ccx65
ccx11 ccx17 ccx22 ccx28 ccx33 ccx39 ccx44 ccx5 ccx55 ccx60 ccx66
ccx12 ccx18 ccx23 ccx29 ccx34 ccx4 ccx45 ccx50 ccx56 ccx61 ccx7
ccx13 ccx19 ccx24 ccx3 ccx35 ccx40 ccx46 ccx51 ccx57 ccx62 ccx8
ccx14 ccx2 ccx25 ccx30 ccx36 ccx41 ccx47 ccx52 ccx58 ccx63 ccx9
[root@lv-test date-test]#
- 假设我们现在需要扩的目录是
/date-test
,可以看到该目录对应的是vg--test-lv--test
,所以,最终我们需要扩的是vg–test-lv–test这个lv
[root@lv-test date-test]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 99G 0 part
│ ├─centos-root 253:0 0 150G 0 lvm /
│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 41.1G 0 lvm /home
└─sda3 8:3 0 100G 0 part
└─centos-root 253:0 0 150G 0 lvm /
sdb 8:16 0 300G 0 disk
├─sdb1 8:17 0 100G 0 part
│ └─vg–test-lv–test 253:3 0 100G 0 lvm /date-test
└─sdb2 8:18 0 100G 0 part
sr0 11:0 1 4.3G 0 rom
[root@lv-test date-test]#
增加vg空间
- 现有vg信息
[root@lv-test date-test]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 1 1 0 wz–n- <100.00g 0
[root@lv-test date-test]#
- 增加vg空间
注:增加vg的时候就需要注意了,如果有多个vg,得确定最终扩容lv所属vg是什么,如,我现在要扩的是lv-test,这个lv是属于vg-test的,所以我们需要把空间扩到vg-test上
[root@lv-test date-test]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
/dev/sdb1 vg-test lvm2 a-- <100.00g 0
/dev/sdb2 lvm2 — 100.00g 100.00g
[root@lv-test date-test]# vgextend vg-test /dev/sdb2
Volume group “vg-test” successfully extended
[root@lv-test date-test]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 2 1 0 wz–n- 199.99g <100.00g
[root@lv-test date-test]#
增加lv空间
- 因为我们需要扩容的目录是
/date-test
,现在是100G,我们扩60g吧,那么最终/date-test
为160g才对
扩容这个其实可以不用卸载的,如果版本过低,先umoun卸载挂载信息在扩也无所谓哈。
[root@lv-test date-test]# df -h | grep /date-test
/dev/mapper/vg–test-lv–test 100G 33M 100G 1% /date-test
[root@lv-test date-test]#
[root@lv-test date-test]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 150.00g
swap centos -wi-ao---- <7.88g
lv-test vg-test -wi-ao---- <100.00g
[root@lv-test date-test]#
- 开始扩
[root@lv-test date-test]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 2 1 0 wz–n- 199.99g <100.00g
[root@lv-test date-test]# lvs | tail -n1
lv-test vg-test -wi-ao---- <100.00g
[root@lv-test date-test]#
不知道lv名称格式的,可以用lvdisplay 查看详细路径
[root@lv-test date-test]# lvextend -L +60G /dev/vg-test/lv-test
Size of logical volume vg-test/lv-test changed from <100.00 GiB (25599 extents) to <160.00 GiB (40959 extents).
Logical volume vg-test/lv-test successfully resized.
[root@lv-test date-test]#
[root@lv-test date-test]# lvs | tail -n1
lv-test vg-test -wi-ao---- <160.00g
[root@lv-test date-test]#
- 现在df呢,是看不到160g空间的,需要刷新以后才能看到
刷新之前呢,需要先看这个是啥格式的,如我的/date-test
是xfs格式的,那么我就需要用xfs的方式来刷新
[root@lv-test date-test]# df -Th | tail -n1
/dev/mapper/vg–test-lv–test xfs 100G 33M 100G 1% /date-test
[root@lv-test date-test]#
xfs的刷新,ext4不能用
一般是用挂载目录作为刷新地址,所以我直接用 /date-test
[root@lv-test date-test]# xfs_growfs /date-test
meta-data=/dev/mapper/vg–test-lv–test isize=512 agcount=4, agsize=6553344 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=26213376, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=12799, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 26213376 to 41942016
[root@lv-test date-test]#
完成扩容
[root@lv-test date-test]# df -Th | tail -n1
/dev/mapper/vg–test-lv–test xfs 160G 33M 160G 1% /date-test
[root@lv-test date-test]#
进去看看里面的内容,依然存在,扩容完成
[root@lv-test date-test]# cd /date-test/
[root@lv-test date-test]#
[root@lv-test date-test]# ls
ccx1 ccx15 ccx20 ccx26 ccx31 ccx37 ccx42 ccx48 ccx53 ccx59 ccx64
ccx10 ccx16 ccx21 ccx27 ccx32 ccx38 ccx43 ccx49 ccx54 ccx6 ccx65
ccx11 ccx17 ccx22 ccx28 ccx33 ccx39 ccx44 ccx5 ccx55 ccx60 ccx66
ccx12 ccx18 ccx23 ccx29 ccx34 ccx4 ccx45 ccx50 ccx56 ccx61 ccx7
ccx13 ccx19 ccx24 ccx3 ccx35 ccx40 ccx46 ccx51 ccx57 ccx62 ccx8
ccx14 ccx2 ccx25 ccx30 ccx36 ccx41 ccx47 ccx52 ccx58 ccx63 ccx9
[root@lv-test date-test]#
说明
- 需要解决这个疑惑
- 这呢,我模拟了上面的环境问题,之前的sdb还剩100g,我待会给划分成sdb3,格式为linux,sdc呢,我不做扇区,直接加pv,看后面会咋样
- sdb创建一个linux格式的扇区sdb3,然后sdc我不做扇区,最终信息如下
[root@lv-test ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
First sector (419432448-629145599, default 419432448):
Using default value 419432448
Last sector, +sectors or +size{K,M,G} (419432448-629145599, default 629145599):
Using default value 629145599
Partition 3 of type Linux and of size 100 GiB is set
Command (m for help): p
Disk /dev/sdb: 322.1 GB, 322122547200 bytes, 629145600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x359bff9f
Device Boot Start End Blocks Id System
/dev/sdb1 2048 209717247 104857600 8e Linux LVM
/dev/sdb2 209717248 419432447 104857600 8e Linux LVM
/dev/sdb3 419432448 629145599 104856576 83 Linux
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@lv-test ~]#
[root@lv-test ~]# partprobe
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0 has been opened read-only.
[root@lv-test ~]#
[root@lv-test ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 99G 0 part
│ ├─centos-root 253:0 0 150G 0 lvm /
│ ├─centos-swap 253:1 0 7.9G 0 lvm [SWAP]
│ └─centos-home 253:2 0 41.1G 0 lvm /home
└─sda3 8:3 0 100G 0 part
└─centos-root 253:0 0 150G 0 lvm /
sdb 8:16 0 300G 0 disk
├─sdb1 8:17 0 100G 0 part
│ └─vg–test-lv–test 253:3 0 160G 0 lvm
├─sdb2 8:18 0 100G 0 part
│ └─vg–test-lv–test 253:3 0 160G 0 lvm
└─sdb3 8:19 0 100G 0 part
sdc 8:32 0 66G 0 disk
sr0 11:0 1 4.3G 0 rom
[root@lv-test ~]#
环境准备
- 因为遇到的环境最开始是用sda3这个linux格式的扇区创建了一个lv的100g空间,sdb无扇区的200g是后面加上去的,所以lvm2的300g是由前面2个磁盘组成。
- 所以我现在先模拟这套环境出来【sdb3是linux格式,sdc是无扇区】
[root@lv-test ~]# vgextend vg-test /dev/sdc
Volume group “vg-test” successfully extended
[root@lv-test ~]#
[root@lv-test ~]# pvcreate /dev/sdb3
Physical volume “/dev/sdb3” successfully created.
[root@lv-test ~]#
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
/dev/sdb1 vg-test lvm2 a-- <100.00g 0
/dev/sdb2 vg-test lvm2 a-- <100.00g <40.00g
/dev/sdb3 lvm2 — <100.00g <100.00g
/dev/sdc lvm2 — 66.00g 66.00g
[root@lv-test ~]#
[root@lv-test ~]# vgreduce vg-test /dev/sdc
Removed “/dev/sdc” from volume group “vg-test”
[root@lv-test ~]#
[root@lv-test ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
/dev/sdb1 vg-test lvm2 a-- <100.00g 0
/dev/sdb2 vg-test lvm2 a-- <100.00g <40.00g
/dev/sdb3 lvm2 — <100.00g <100.00g
/dev/sdc lvm2 — 66.00g 66.00g
[root@lv-test ~]#
[root@lv-test ~]# vgcreate vg01 /dev/sdb3
Volume group “vg01” successfully created
[root@lv-test ~]#
[root@lv-test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 2 1 0 wz–n- 199.99g <40.00g
vg01 1 0 0 wz–n- <100.00g <100.00g
[root@lv-test ~]# lvcreate -L 88G -n lvm2 vg01
Logical volume “lvm2” created.
[root@lv-test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 150.00g
swap centos -wi-ao---- <7.88g
lv-test vg-test -wi-ao---- <160.00g
lvm2 vg01 -wi-a----- 88.00g
[root@lv-test ~]# mkfs.xfs /dev/vg01/lvm2
meta-data=/dev/vg01/lvm2 isize=512 agcount=4, agsize=5767168 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=23068672, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=11264, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@lv-test ~]#
[root@lv-test ~]# mkdir /aidmp
[root@lv-test ~]# mount /dev/vg01/lvm2 /aidmp/
[root@lv-test ~]# df -h | tail -n1
/dev/mapper/vg01-lvm2 88G 33M 88G 1% /aidmp
[root@lv-test ~]#
随便写点数据进去
[root@lv-test ~]# cd /aidmp/
[root@lv-test aidmp]# ls
[root@lv-test aidmp]# mkdir ccx_hero{1…66}
[root@lv-test aidmp]# ls
ccx_hero1 ccx_hero2 ccx_hero3 ccx_hero4 ccx_hero5 ccx_hero6
ccx_hero10 ccx_hero20 ccx_hero30 ccx_hero40 ccx_hero50 ccx_hero60
ccx_hero11 ccx_hero21 ccx_hero31 ccx_hero41 ccx_hero51 ccx_hero61
ccx_hero12 ccx_hero22 ccx_hero32 ccx_hero42 ccx_hero52 ccx_hero62
ccx_hero13 ccx_hero23 ccx_hero33 ccx_hero43 ccx_hero53 ccx_hero63
ccx_hero14 ccx_hero24 ccx_hero34 ccx_hero44 ccx_hero54 ccx_hero64
ccx_hero15 ccx_hero25 ccx_hero35 ccx_hero45 ccx_hero55 ccx_hero65
ccx_hero16 ccx_hero26 ccx_hero36 ccx_hero46 ccx_hero56 ccx_hero66
ccx_hero17 ccx_hero27 ccx_hero37 ccx_hero47 ccx_hero57 ccx_hero7
ccx_hero18 ccx_hero28 ccx_hero38 ccx_hero48 ccx_hero58 ccx_hero8
ccx_hero19 ccx_hero29 ccx_hero39 ccx_hero49 ccx_hero59 ccx_hero9
[root@lv-test aidmp]#
然后把sdc这个无扇区盘加到vg01里下面的lvm2中
[root@lv-test aidmp]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <99.00g 0
/dev/sda3 centos lvm2 a-- <100.00g 0
/dev/sdb1 vg-test lvm2 a-- <100.00g 0
/dev/sdb2 vg-test lvm2 a-- <100.00g <40.00g
/dev/sdb3 vg01 lvm2 a-- <100.00g <12.00g
/dev/sdc lvm2 — 66.00g 66.00g
[root@lv-test aidmp]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 2 1 0 wz–n- 199.99g <40.00g
vg01 1 1 0 wz–n- <100.00g <12.00g
[root@lv-test aidmp]#
[root@lv-test aidmp]# vgextend vg01 /dev/sdc
Volume group “vg01” successfully extended
[root@lv-test aidmp]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 2 3 0 wz–n- 198.99g 0
vg-test 2 1 0 wz–n- 199.99g <40.00g
vg01 2 1 0 wz–n- 165.99g 77.99g
[root@lv-test aidmp]# lvextend -L +66G /dev/vg01/lvm2
Size of logical volume vg01/lvm2 changed from 88.00 GiB (22528 extents) to 154.00 GiB (39424 extents).
Logical volume vg01/lvm2 successfully resized.
[root@lv-test aidmp]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- <41.12g
root centos -wi-ao---- 150.00g
swap centos -wi-ao---- <7.88g
lv-test vg-test -wi-ao---- <160.00g
lvm2 vg01 -wi-ao---- 154.00g
[root@lv-test aidmp]#
[root@lv-test aidmp]# xfs_growfs /aidmp/
meta-data=/dev/mapper/vg01-lvm2 isize=512 agcount=4, agsize=5767168 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=23068672, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=11264, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 23068672 to 40370176
[root@lv-test aidmp]#
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[root@lv-test aidmp]#
[root@lv-test aidmp]# xfs_growfs /aidmp/
meta-data=/dev/mapper/vg01-lvm2 isize=512 agcount=4, agsize=5767168 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=23068672, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=11264, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 23068672 to 40370176
[root@lv-test aidmp]#
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!