(转)虚拟机环境中linux系统增加磁盘空间

简介: 前段时间在vmware ESXi虚拟化环境中安装了一套turbolinux系统,当时并没有在意磁盘如何规划,使用了LVM,心想反正能够随时扩展。不料时间不长,问题出现了,分配的磁盘空间满了。以为能够象windows Server环境中使用磁盘管理增加动态磁盘那样方便呢,就随意在ESX管理器中将原有的磁盘从10G增加到了13G,重启挂载LVM没有左右,重启系统了。

前段时间在vmware ESXi虚拟化环境中安装了一套turbolinux系统,当时并没有在意磁盘如何规划,使用了LVM,心想反正能够随时扩展。不料时间不长,问题出现了,分配的磁盘空间满了。以为能够象windows Server环境中使用磁盘管理增加动态磁盘那样方便呢,就随意在ESX管理器中将原有的磁盘从10G增加到了13G,重启挂载LVM没有左右,重启系统了。

重启后 ,使用fdisk -l能够看到/dev/sda的空间已经增加了,但仍还是原来的两个磁盘/dev/sda1和/dev/sda2 (LVM)。在LVM逻辑卷管理其中仍是原来的10G空间,但在“未初始化的实例”中可以看到增加的3G未初始化的磁盘实例(unpartitioned space on /dev/sda)。

增加磁盘后不重启的方法:

Linux操作系统不能重启或者关机,但是需要给Linux系统热添加 SCSI 硬盘,或者移除非 OS 的 SCSI 硬盘。
solution:
添加
echo "scsi add-single-device 1 2 3 4" >/proc/scsi/scsi
移除:
echo "scsi remove-single-device 1 2 3 4" > /proc/scsi/scsi

命令行解释:
命令行中标红的 1 2 3 4 需要自行修改成相应的参数:
1 : SCSI HBA ID
2 : SCSI Channel
3 : SCSI ID
4 : LUN ID

如何查看 1 2 3 4 中的参数?举例:
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: Adaptec  Model: 2410SA Stripe    Rev: V1.0
  Type:   Direct-Access                    ANSI SCSI revision: 02


实际添加例子:
添加到第一块SCSI HBA, Channel 0, ID 3, LUN 0:
echo "scsi add-single-device 0 0 3 0" >/proc/scsi/scsi


解决办法:

使用sfdisk /dev/sda 命令,选择n (add a new partition),然后选择p (primary partition ),选择一个磁盘号,随后系统会自动提示选择起始块和最后的块。使用p(print the partion table)查看磁盘是否已经增加:

Disk /dev/sda: 13.9 GB, 13958643712 bytes
255 heads, 63 sectors/track, 1697 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1305 10377990 8e Linux LVM
/dev/sda3 1306 1697 3148740 83 Linux
可以看到/dev/sda3的 id是83,这样的磁盘无法加入到lvm中,选择t(change a partition's system id),键入8e (Linux LVM 的id)。

最后,w保存退出。再使用sfsik -l即可看到新增的磁盘。

此时,使用lvm的初始化磁盘工具或者直接使用pvcreate /dev/sda3命令会提示出错,提示

Device “/dev/sda3” not found (or ignored by filtering)

出错的原因在于使用fdisk修改配置时没有在runlevel 1下进行,重启系统后可解决此问题。

[root@turbolinux ~]# fdisk -l

Disk /dev/sda: 13.9 GB, 13958643712 bytes
255 heads, 63 sectors/track, 1697 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1305 10377990 8e Linux LVM
/dev/sda3 1306 1697 3148740 8e Linux LVM


[root@turbolinux ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created


[root@turbolinux ~]# lvm
lvm> pvscan
PV /dev/sda2 VG VolGroup00 lvm2 [9.88 GB / 640.00 MB free]
PV /dev/sda3 lvm2 [3.00 GB]
Total: 2 [12.88 GB] / in use: 1 [9.88 GB] / in no VG: 1 [3.00 GB]


lvm> vgextend VolGroup00 /dev/sda3
Volume group "VolGroup00" successfully extended


lvm> lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 9tKx5o-7wgM-0BhF-OMqy-EY14-ttbL-30j1px
LV Write Access read/write
LV Status available
# open 1
LV Size 7.25 GB
Current LE 232
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0


lvm> lvextend
Please specify either size or extents but not both.


lvm> lvextend -L+2G /dev/VolGroup00/LogVol00
Extending logical volume LogVol00 to 9.25 GB
Logical volume LogVol00 successfully resized


lvm> lvdisplay
--- Logical volume ---
LV Name /dev/VolGroup00/LogVol00
VG Name VolGroup00
LV UUID 9tKx5o-7wgM-0BhF-OMqy-EY14-ttbL-30j1px
LV Write Access read/write
LV Status available
# open 1
LV Size 9.25 GB
Current LE 296
Segments 3
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

逻辑卷的大小已经更改到9.23G了,但文件系统仍没有增加:

[root@turbolinux ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
7364072 5140148 1843844 74% /
/dev/sda1 101086 25946 69921 28% /boot
tmpfs 2073968 0 2073968 0% /dev/shm

需要使用resize2fs命令将文件系统扩展到增加的空间上:
[root@turbolinux ~]# resize2fs /dev/VolGroup00/LogVol00
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VolGroup00/LogVol00 is mounted on /; on-line resizing required
Performing an on-line resize of /dev/VolGroup00/LogVol00 to 2424832 (4k) blocks.
The filesystem on /dev/VolGroup00/LogVol00 is now 2424832 blocks long.

[root@turbolinux ~]# df -m
文件系统 1M-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
9176 5020 3683 58% /
/dev/sda1 99 26 69 28% /boot
tmpfs 2026 0 2026 0% /dev/shm
[root@turbolinux ~]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
9395560 5140156 3770492 58% /
/dev/sda1 101086 25946 69921 28% /boot
tmpfs 2073968 0 2073968 0% /dev/shm
至此,磁盘空间的扩展工作完毕。



另,更改swap空间的内容如下:

默认安装时,不知为何,将swap的空间定为了5G,感觉没有必要这么大,需减少一点,因为swap在VolGroup00中,所以调整大小非常方便,

  具体操作如下:

  关闭swap先

  # swapoff -v /dev/VolGroup00/LogVol01

  # lvm lvreduce /dev/VolGroup00/LogVol01 -L -1G

  # mkswap /dev/VolGroup00/LogVol01

  重新打开swap

  # swapon -va

swap常用命令:

cat /proc/swaps

swapon -s

调整swap大小:
dd if=/dev/zero of=swapfree bs=32k count=8192 (256MB)
mkswap swapfree
swapon /tmp/swapfree

停止:
swapoff /tmp/swapfree
启动时加载:
在/etc/fstab文件中,加入下行:
/tmp/swapfree swap swap defaults 0 0

目录
相关文章
|
15天前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
182 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
19天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
151 78
|
12天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
22天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
55 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
158 48
|
18天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
84 13
|
2月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
46 4
|
2月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
51 3
|
19天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
40 0
|
2月前
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
77 4