Linux fdisk实战 && 挂载参数优化

简介: Linux fdisk实战 && 挂载参数优化

为什么需要分区?


优化I/O性能

实现磁盘空间配额限制

提高修复速度

隔离系统和程序

安装多个OS

采用不同文件系统

给vagrant拉起来的机器加一块硬盘


2fd23cc09a174b5c81c0ed120fab2da6.png

通过VBoxManage 工具给虚拟机增加硬盘.


2022-07-22 15:49:31

#1、 创建50GB 的vdi硬盘
VBoxManage createvdi --filename "/gpmaster/gpseg-1_down/VirtualBox VMs/meta_meta_1651042401911_2096/meta-50g.vdi" --size 51200
#2、将第一步创建的硬盘attach到虚拟机上  
VBoxManage storageattach meta_meta_1651042401911_2096 --storagectl SATA --port 0 --device 0 --type hdd --medium "/gpmaster/gpseg-1_down/VirtualBox VMs/meta_meta_1651042401911_2096/meta-50g.vdi"
# 3、如果第二步报错: sata控制器未开启先执行以下命令开启再执行第二步(必须关机状态)
VBoxManage storagectl meta_meta_1651042401911_2096 --name SATA --add sata --controller IntelAhci --bootable on

[1]lsblk查看新加的硬盘


[root@meta /etc/prometheus]#df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  7.8G     0  7.8G   0% /dev
tmpfs          tmpfs     7.8G  180K  7.8G   1% /dev/shm
tmpfs          tmpfs     7.8G  156M  7.7G   2% /run
tmpfs          tmpfs     7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sda1      xfs        40G   39G  1.5G  97% /
tmpfs          tmpfs     1.6G     0  1.6G   0% /run/user/0
[root@meta /etc/prometheus]#fdisk -l /dev/sdb
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 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@meta /etc/prometheus]#lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  40G  0 disk
`-sda1   8:1    0  40G  0 part /
sdb      8:16   0  50G  0 disk

[2]fdisk格式化硬盘


[root@meta /etc/prometheus]#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 0x1daa8e3b.
Command (m for help): m
Command action
   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
   x   extra functionality (experts only)
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-104857599, default 2048):# 扇区起始位置
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):# 扇区结束位置
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is set
Command (m for help): p
Disk /dev/sdb: 53.7 GB, 53687091200 bytes, 104857600 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: 0x1daa8e3b
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   104857599    52427776   83  Linux
Command (m for help): w # 保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@meta /etc/prometheus]#
[root@meta /etc/prometheus]#lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0  40G  0 disk
`-sda1   8:1    0  40G  0 part /
sdb      8:16   0  50G  0 disk
`-sdb1   8:17   0  50G  0 part

[3]重新载入磁盘分区信息


[root@meta /etc/prometheus]#partprobe /dev/sdb # 重新载入磁盘分区信息
[root@meta /etc/prometheus]# 

a764e1add0774422b4d83a04bd7f041a.png

[4] 格式化磁盘


要是用 mkfs.xfs而不是xfs_growfs

9e0e17e0f37b4ba3b238cfcb81b4c653.png

[5]创建目录并挂载


 ⚡ root@pigsty2-179  ~  df -TH
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs   34G     0   34G   0% /dev
tmpfs          tmpfs      34G     0   34G   0% /dev/shm
tmpfs          tmpfs      34G  8.9M   34G   1% /run
tmpfs          tmpfs      34G     0   34G   0% /sys/fs/cgroup
/dev/sda1      xfs        43G  3.7G   40G   9% /
tmpfs          tmpfs     6.8G     0  6.8G   0% /run/user/0
 ⚡ root@pigsty2-179  ~  lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  600G  0 disk
├─sda2   8:2    0  560G  0 part
└─sda1   8:1    0   40G  0 part /
 ⚡ root@pigsty2-179  ~  mkdir /data
 ⚡ root@pigsty2-179  ~ 
 ⚡ root@pigsty2-179  ~  mount /dev/sda2 /data
 ⚡ root@pigsty2-179  ~ 
 ⚡ root@pigsty2-179  ~  df -TH
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs   34G     0   34G   0% /dev
tmpfs          tmpfs      34G     0   34G   0% /dev/shm
tmpfs          tmpfs      34G  8.9M   34G   1% /run
tmpfs          tmpfs      34G     0   34G   0% /sys/fs/cgroup
/dev/sda1      xfs        43G  3.7G   40G   9% /
tmpfs          tmpfs     6.8G     0  6.8G   0% /run/user/0
/dev/sda2      xfs       602G   34M  601G   1% /data

[6] 开机自动挂载


blkid 获取

blkid /dev/sda2
/dev/sda2: UUID="ed42543b-8f1b-4473-9c01-720e6e41b2fe" TYPE="xfs"

fstab增加配置自动挂载ab39575b3fcd48e29d4c73f58b6b2c67.png重启硬盘自动挂载好了7513125d2cfc4f13b560330a537980af.png

挂载参数优化


#more /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Jul 21 17:33:20 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rootvg-root /                       xfs     defaults        0 0
UUID=3aa14848-bfe7-4360-8149-8af67abdcd44 /boot                   xfs     defaults        0 0
UUID=9DEB-A905          /boot/efi               vfat    umask=0077,shortname=winnt 0 0
/dev/mapper/rootvg-homelv /home                   xfs     defaults        0 0
/dev/mapper/rootvg-optlv /opt                    xfs     defaults        0 0
/dev/mapper/rootvg-tmplv /tmp                    xfs     defaults        0 0
/dev/mapper/rootvg-usrlv /usr                    xfs     defaults        0 0
/dev/mapper/rootvg-varlv /var                    xfs     defaults        0 0
/dev/mapper/rootvg-swap swap                    swap    defaults        0 0
/dev/datavg/gpmasterlv /gpmaster xfs nodev,noatime,nobarrier,inode64,allocsize=16m 0 0
/dev/rootvg/defectlv  /ods_defect  xfs  nodev,noatime,nobarrier,inode64,allocsize=16m  0  0
/dev/rootvg/edclv     /ods_edc     xfs  nodev,noatime,nobarrier,inode64,allocsize=16m  0  0
/dev/rootvg/mainlv    /ods_main    xfs  nodev,noatime,nobarrier,inode64,allocsize=16m  0  0

/etc/fstab 文件是一个用于配置文件系统挂载的系统文件。该文件包含了每个文件系统的挂载点,文件系统类型,挂载选项以及挂载设备的信息。这些挂载选项是用于设置文件系统的特定行为的。


nodev:该选项表示该文件系统中不允许挂载设备文件。这意味着在该文件系统中不能创建设备文件,并且也不能将设备挂载到该文件系统上。


noatime:该选项表示在访问文件时不更新文件的访问时间。这意味着在该文件系统中,每次访问文件时,文件的最后访问时间不会更新。这可以减少文件系统的写入次数,从而提高磁盘性能。


nobarrier:该选项表示在向文件系统写入数据时不使用屏障。屏障是一种写入优化技术,用于保证数据写入的有序性。但是,在某些情况下,使用屏障会导致性能降低,因此可以使用 nobarrier 选项来禁用屏障。

inode64:该选项表示使用 64 位 inode 编号。inode 是一个数据结构,用于储存文件的元数据

allocsize 设置缓冲I / O端的文件预分配的大小时,延迟分配写出时。此选项的页面大小(通常4KiB)到1GiB,包括有效值,功率为2的增量。

xfs_growfs 和 mkfs.xfs区别


mkfs.xfs格式化没有做lvm的磁盘

[root@meta /etc/prometheus]#mkfs.xfs -f /dev/sdb1 # 不同文件系统使用不同的格式化命令
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=3276736 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=13106944, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=6399, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

xfs_growfs格式化做了lvm的磁盘

– update 2022年11月4日09:45:33cfcfc54d4bab4b38b321bc277e0c8a9d.png

umount报 target is busy


[root@meta /tmp]#df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G  180K  7.8G   1% /dev/shm
tmpfs           7.8G  792M  7.0G  10% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sda1        40G   21G   20G  51% /
/dev/sdb1        50G   13G   38G  26% /prometheus
tmpfs           1.6G     0  1.6G   0% /run/user/0
[root@meta /tmp]#mount /dev/sdb1 /prometheus
[root@meta /data/prometheus/data]#umount -v /dev/sdb1
umount: /data: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

解决


对付系统文件正忙的另一种方法是执行延迟卸载:
[root@meta /data/prometheus/data]#umount -vl /data/
umount: /data (/dev/sdb1) unmounted
延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源
相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
目录
相关文章
|
10天前
|
算法 Linux 调度
深入理解Linux内核调度器:从基础到优化####
本文旨在通过剖析Linux操作系统的心脏——内核调度器,为读者揭开其高效管理CPU资源的神秘面纱。不同于传统的摘要概述,本文将直接以一段精简代码片段作为引子,展示一个简化版的任务调度逻辑,随后逐步深入,详细探讨Linux内核调度器的工作原理、关键数据结构、调度算法演变以及性能调优策略,旨在为开发者与系统管理员提供一份实用的技术指南。 ####
45 4
|
13天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
41 9
|
13天前
|
算法 Unix Linux
深入理解Linux内核调度器:原理与优化
本文探讨了Linux操作系统的心脏——内核调度器(Scheduler)的工作原理,以及如何通过参数调整和代码优化来提高系统性能。不同于常规摘要仅概述内容,本摘要旨在激发读者对Linux内核调度机制深层次运作的兴趣,并简要介绍文章将覆盖的关键话题,如调度算法、实时性增强及节能策略等。
|
16天前
|
机器学习/深度学习 负载均衡 算法
深入探索Linux内核调度机制的优化策略###
本文旨在为读者揭开Linux操作系统中至关重要的一环——CPU调度机制的神秘面纱。通过深入浅出地解析其工作原理,并探讨一系列创新优化策略,本文不仅增强了技术爱好者的理论知识,更为系统管理员和软件开发者提供了实用的性能调优指南,旨在促进系统的高效运行与资源利用最大化。 ###
|
15天前
|
监控 网络协议 算法
Linux内核优化:提升系统性能与稳定性的策略####
本文深入探讨了Linux操作系统内核的优化策略,旨在通过一系列技术手段和最佳实践,显著提升系统的性能、响应速度及稳定性。文章首先概述了Linux内核的核心组件及其在系统中的作用,随后详细阐述了内存管理、进程调度、文件系统优化、网络栈调整及并发控制等关键领域的优化方法。通过实际案例分析,展示了这些优化措施如何有效减少延迟、提高吞吐量,并增强系统的整体健壮性。最终,文章强调了持续监控、定期更新及合理配置对于维持Linux系统长期高效运行的重要性。 ####
|
15天前
|
安全 网络协议 Linux
Linux操作系统的内核升级与优化策略####
【10月更文挑战第29天】 本文深入探讨了Linux操作系统内核升级的重要性,并详细阐述了一系列优化策略,旨在帮助系统管理员和高级用户提升系统的稳定性、安全性和性能。通过实际案例分析,我们展示了如何安全有效地进行内核升级,以及如何利用调优技术充分发挥Linux系统的潜力。 ####
37 1
|
18天前
|
人工智能 算法 大数据
Linux内核中的调度算法演变:从O(1)到CFS的优化之旅###
本文深入探讨了Linux操作系统内核中进程调度算法的发展历程,聚焦于O(1)调度器向完全公平调度器(CFS)的转变。不同于传统摘要对研究背景、方法、结果和结论的概述,本文创新性地采用“技术演进时间线”的形式,简明扼要地勾勒出这一转变背后的关键技术里程碑,旨在为读者提供一个清晰的历史脉络,引领其深入了解Linux调度机制的革新之路。 ###
|
1月前
|
监控 Linux 云计算
Linux操作系统在云计算环境中的实践与优化###
【10月更文挑战第16天】 本文探讨了Linux操作系统在云计算环境中的应用实践,重点分析了其在稳定性、安全性和高效性方面的优势。通过具体案例,阐述了Linux如何支持虚拟化技术、实现资源高效分配以及与其他开源技术的无缝集成。文章还提供了针对Linux系统在云计算中的优化建议,包括内核参数调整、文件系统选择和性能监控工具的应用,旨在帮助读者更好地理解和应用Linux于云计算场景。 ###
42 3
|
1月前
|
Linux
linux开机挂载镜像
【10月更文挑战第1天】在 Linux 系统中,开机挂载镜像通常涉及几个关键步骤,包括创建挂载点、编辑配置文件以及重新加载配置
80 0
|
2月前
|
监控 Linux Shell
30 个实用的 Linux 命令贴与技巧,提升你的效率(附实战案例)
本文介绍了30个实用的Linux命令及其应用场景,帮助你提升命令行操作效率。涵盖返回目录、重新执行命令、查看磁盘使用情况、查找文件、进程管理、网络状态监控、定时任务设置等功能,适合各水平的Linux用户学习和参考。
下一篇
无影云桌面