📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师
🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者
🔥 三连支持:欢迎 ❤️关注、👍点赞、👉收藏三连,支持一下博主~
引言
今天早上在做业务系统日常巡检,发现日志盘没有办法写入进去了,第一个想到的就是磁盘被撑爆了。很好奇就去看了下,果不其然,满满当当的日志文件。为了解决这个问题,下面开始自己的处理方案,以供需要之人。
这个问题很好解决,我一般的处理办法有两种。
第一种就是根据需求来删减日志的,可以删除过期的日志或者时间久远的日志文件。一般来讲,大家应该都会有相应的调度任务来处理这个。
第二种就是增加磁盘空间,一般情况下,我们都是增加挂载。
那么问题来了,如何进行磁盘挂载呢?下面就让我来带着大家一起实践下吧。
环境准备
实验机器环境(虚拟机):Linux ky10.x86_64 、Linux CentOS 7.6_x86_64 其中本次实践演示为CentOS 7.6虚拟机。
实践挂载
1、 检查磁盘存储
在检查磁盘是否已经被垃圾文件占用,我们通常会使用命令 df -h 来检查是否已经还有存储空间,此命令只会展示已经挂载在节点上的磁盘是否被占用,而未挂载的磁盘是不会被显示到此命令的输出。所以,我们需要额外的命令工具来做支撑,实验之前,先检查下机器已经挂载的磁盘,可使用lsblk命令来查询,如果不了解这个命令,
注意:Linux下对SCSI和SATA设备是以sd命名的,第一个SCSI设备是sda,第二个是sdb…以此类推。一般主板上有两个SCSI接口,因此一共可以安装4个SCSI设备。主SCSI上的两个设备分别对应sda和sdb,第二个SCSI口上的设备对应sdc和sdd。
2、 先挂载一个盘
当我们磁盘满了,此时需要从外部挂载一个硬盘来存储日志信息或者备份信息。为了方便实践操作,此时我先挂载一个盘。当然,如果这个是在UI界面程序上面操作比较好操作,此时演示的为命令行挂载。执行命令
lsblk
3、 查看未挂载的磁盘
Linux fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。我们可以使用命令fdisk -l查看还未挂载到节点的磁盘。
[root@~ ~]# fdisk -l
Disk /dev/sda:50 GiB,53687091200 字节,104857600 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9366b0cc
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 2099199 2097152 1G 83 Linux
/dev/sda2 2099200 104857599 102758400 49G 8e Linux LVM
Disk /dev/sdb:1 TiB,1099511627776 字节,2147483648 个扇区
磁盘型号:VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-root:45.4 GiB,48364519424 字节,94461952 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
Disk /dev/mapper/klas-swap:3.98 GiB,4244635648 字节,8290304 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
[root@xxx ~]#
如上所示,使用fdisk之后可以看到有四个Disk盘,其中Disk /dev/sdb为刚挂载的盘。此时使用df -h也还是看不到已经挂载的盘。
4、 实施磁盘分区
【格式】fdisk [盘号/盘位置/盘节点]
【实践】执行 fdisk /dev/sdb
在Linux进行挂载。
[root@xxx ~]# fdisk /dev/sdb
……
命令(输入 m 获取帮助):n # 第一步 直接输入n,新建一个分区(可以参考附录第一步骤命令)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p # 第二步 只是选择主分区
分区号 (1-4,默认 1):1 # 第三步 默认第一分区
起始 扇区 (2048-41943039,默认为 2048):# 第四步 开始大小,使用默认,直接回车
将使用默认值 2048
结束 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):# 第五步 结束大小,使用默认,直接回车
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):W # 第六步 写入磁盘,保存并退出。
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
通过上面六步走,我们可以临时挂载(机器重启后失效)。这六步骤分别为:
(1)第一步 直接输入n,新建一个分区(可以参考4、(1)帮助第一个命令)
(2)第二步 只是选择主分区
(3)第三步 默认第一分区
(4)第四步 开始大小,使用默认,直接回车
(5)第五步 结束大小,使用默认,直接回车
(6)第六步 写入磁盘,保存并退出。
简单的六步走方式是懒人操作,执行的命令为: n > p > 1 > 回车 > 回车 > w
。主打一个懒人操作,当然了,这个也是在熟悉命令的情况下操作。如果不熟悉命令,可以参考下面的执行帮助命令来查询。
5、 格式化写入文件系统
使用 mkfs.ext4 /dev/sdb1
命令来格式化磁盘并写入到文件系统中。
注意:这里可以用ext3,也可以用ext4。可以到/dev目录下查看有哪些格式。
6、 实施挂载
(1)创建挂载节点
这个比较简单,就是创建一个文件夹。
mkdir disk_mount
(2)将新磁盘挂载到新节点
【格式】mount [磁盘节点] [目录节点]
mount /dev/sdb1 /disk_mount
7、 检查是否挂载成功
此时,可以使用df -h命令来查询是否挂载成功。
8、 设置开机启动挂载
将挂载信息按指定格式写入到 /etc/fstab文件中(这样主机重启后,挂载才能永久有效),可以将下面的信息追加到文件中。
/dev/sdb1 /disk_mount ext4 defaults 0 1 // 如果上面用的是ext3,这里也要用ext3;
此时,如果你在测试环境,可以重启试试。
9、 迁移日志到挂载盘
上面的挂载已然成功,那么回到最初的问题,可以将日志迁移到挂载盘中,是业务正常运行。
cp -rf /data/backup/* /disk_mount/
mv /data/backup/* /disk_mount/
附录:第一步骤命令
输入m命令可以查阅帮助命令。
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
问题与解决办法
挂载点不存在
执行挂载新节点到目录上时提示挂载节点不存在时,首先检查下创建的目录的权限问题或者创建的目录结构不对,一般当前用户下,也就是在最外层;其次有些时候可能系统性能比较慢,稍等等;如果还不可以,最后可以删除进行重新mout挂载。
$ /disk_mount mount point does not exist.
结束语
通过本文关于在Linux下如何挂载磁盘,以及挂载后开机启动,想必读者都对磁盘分区挂载有所了解。个人觉得Linux中的工具不像windows,可以使用图形化界面程序处理,但是命令也可以完美的解决问题,尤其是在线上环境中历练我们的命令功底,而且看了很多国产操作系统在被应用到线上环境后,这是其他操作系统所不具备的优势。总的体验下来,国产操作系统非常好用,功能也很强大,值得入手体验一番!
欢迎关注博主 「六月暴雪飞梨花」 或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。