百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

LINUX 磁盘管理

nanshan 2024-11-26 06:59 33 浏览 0 评论

【九】磁盘管理

9.1 linux硬盘的基本概念:

1)在linux中,每一个硬件设备都会以一个文件的形式映射到/dev目录下,第一个IDE设备定义为hda,第二个IDE设备就定义为hdb,以此类推,而SCSI设备就应该是sda、sdb、sdc等。

2)对于每一个硬盘(IDE/SCSI)设备,linux分区分配一个1-16的序列号码,这就代表了硬盘上面的分区号码,示例:加一块SCSI硬盘,第一个分区是编号是sdb1,第二个分区就是sdb2,以此类推…

3)有三种分区,分别是主分区,扩展分区和逻辑分区:

【主分区】的作用是启动操作系统,所以linux的启动系统或引导程序都应该存放在主分区上。

【逻辑分区】实际上是扩展分区的具体体现,扩展分区要占用一个设备号。linux规定了主分区(或者扩展分区)一共最多是4个,分别占用1至16号码中的前四个号码,示例:第一个SCSI硬盘的主分区(或扩展分区)占用sda1, sda2, sda3, sda4。而逻辑分区则可以占用sda5到sda16等12个号码,这就对应上了前面所说的最多16个分区。

4)Linux6版本安装时一般选择ext4格式,这个文件格式存取效率较高,是一种日志型文件系统,但是windows是不识别的,ext4是GNU/linux系统中标准的文件系统。一个分区做成了ext4文件系统后,如果要使用必须挂载它(mount),系统缺省提供了一个目录,就是/mnt,当然你可以根据需要再建其他的目录作为挂载点,只读设备如光驱也如此。

9.2 挂载、卸载文件系统

1)mount命令

用途:挂载文件系统、ISO镜像到指定文件夹
格式:mount [ -t 类型 ] 存储设备 挂载点目录

2)umount命令

用途:卸载已挂载的文件系统
格式:umount 存储设备位置

3)如何在vbox下mount光盘

第一步,分配光驱:

这一步相当于把光盘插入光驱

第二步,手工mount光盘:

[root@alex]#mount /dev/cdrom /media

4)系统挂载表

/etc/fstab文件称为系统挂装表,作用是当系统启动时自动mount的文件系统,只需要用文本编辑器修改系统挂装表,添加相应的mount记录即可。

第一字段:设备位置

第二字段:挂载点

第三字段:文件系统类型

第四字段:挂载参数,即mount命令“-o”选项后可使用的参数,如defaults、rw等

第五字段:表示文件系统是否需要dump备份(dump是一个备份工具),一般设为1时表示需要,设为0时将被dump所忽略

第六字段:该数字用于决定在系统启动时进行磁盘检查的顺序,0不进行检查,1优先,2其次。对于根分区应设为1,其它分区设为2

【注】此表修改要小心,因改写错误可能使系统不能启动,如果提示发现文件是只读的,请尝试重新mount后再次修改fstab文件。

#mount -n -o remount, rw /

9.3增加SWAP分区

扩充一块swap空间最好来自一个单独的分区,尽量避免使用根分区,但我们这里只是讲解一下步骤,就使用一次根分区吧。

[root@alex ~]# free –m 查看内存空间分配
[root@alex ~]# df –h 查看磁盘空间分配

先用dd命令生成一个空文件,把它放在/下,单位1024m,设置2G,另外bs的单位M要大写。

[root@alex ~]# dd if=/dev/zero of=/swap1 bs=1M count=2048

2)创建一个swap类型文件,名字随便

[root@alex ~]# mkswap /swap1

3)将swpf1生成swap文件

[root@alex ~]# swapon /swap1

查看一下,swap1起作用了

[root@alex ~]# free –m

4)实现开机后自动使用新添swap1分区

[root@alex ~]# vi /etc/fstab

添加swap行

/swap1 swap swap defaluts 0 0

5)修改tmpfs行 tmpfs是一个虚拟内存(物理内存+交换区)的文件系统

tmpfs /dev/shm tmpfs defaults,size=2G 0 0

6)tmpfs重置一下,使其当下有效

[root@alex ~]#mount -o remount /dev/shm

7)如何撤销操作,返回原状

[root@alex ~]#swapoff /swap1
[root@alex ~]#rm -rf /swap1

修改/etc/fstab文件 逆操作回到初始状态。

9.4磁盘操作相关命令

1)du用于查看磁盘使用情况。

du –s 显示当前目录总的使用量
du –h 带单位显示磁盘各个文件的使用量令
[root@alex ~]#du -sh

888K .

[root@alex ~]#du -sh /etc

114M /etc

2)df 用于查看磁盘剩余情况。

df -h 带单位显示磁盘信息
[root@alex ~]#df -h

文件系统 容量 已用 可用 已用% 挂载点

/dev/sda2 28G 4.7G 21G 19% /
/dev/sda1 99M 12M 83M 13% /boot
tmpfs 1014M 0 1014M 0% /dev/shm

3)磁盘分区命令

fdisk 的子命令:
m:显示命令帮助清单
a:激活分区的可引导标志
l:列出可选的分区类型
n:添加新分区
d:删除已经存在的分区
p:显示分区表
t:改变分区的文件系统类型
w:写分区表
q:退出

4)磁盘格式化操作

语法: mkfs <选项> <分区设备名>
如:#mkfs -t ext4 /dev/sdb1
或者: mkfs.ext4 <分区设备名>
如:#mkfs.ext4 /dev/sdb1

9.5磁盘限额

Linux系统在默认情况下,并不限制每个用户或组使用磁盘空间的大小,如果某个用户疏忽或恶意将磁盘占满,将导致系统无法进行写操作甚至崩溃。Linux提供的磁盘限额是基于磁盘分区的,而不是基于目录的。

本节实验目标是提供磁盘限额功能:

一)设置磁盘限额的步骤:

(1)启动分区限额功能

(2)生成限额信息文件

(3)设置用户和组限额

(4)启动磁盘限额服务

二)实验:配置磁盘限额

1)启动分区限额功能;/etc/fstab文件中添加描述

[root@alex ~]#vi /etc/fstab
[root@alex ~]#mount -o remount /disk1
[root@alex ~]#df

2)生成配额信息文件

[root@alex ~]#quotacheck -avug
[root@alex ~]#ls -al /disk1

drwxrwxrwx 5 root root 4096 12-10 14:52 .

drwxr-xr-x 26 root root 4096 12-10 14:11 ..

-rw------- 1 root root 7168 12-10 14:55 aquota.group

-rw------- 1 root root 8192 12-10 14:57 aquota.user

3)设置用户和组限额

3.1)设置用户限额

[root@alex disk1]#edquota -u ran
[root@alex disk1]#edquota -p ran wang liu 复制给其他用户

3.2)设置组限额

[root@alex disk1]#edquota -g class01
[root@alex disk1]#edquota -g -p class01 class02 复制给其他组

3.3)查看用户和组限额

[root@alex disk1]#repquota -avug

参数说明:

-a 扫描/etc/fstab里有加入quota的分区,
-v 显示指令执行过程
-u 计算当前user使用磁盘空间和Inode数
-g 计算当前group使用磁盘空间和Inode数

4)启动磁盘限额服务

[root@alex ]#quotaon -a

/disk1的磁盘限额已经开启

5)迁移/usr下用户目录到/disk1下,并建立链接

[root@alex ~]#mv /usr/class01 /disk1
[root@alex ~]#mv /usr/class02 /disk1
[root@alex ~]#ln -s /disk1/class01 /usr/class01
[root@alex ~]#ln -s /disk1/class02 /usr/class02

6)测试磁盘限额作用

以ran用户登录

[ran@alex ~]$dd if=/dev/zero of=/usr/class01/ran/ranfile bs=1024K count=50

7)删除磁盘限额

[root@alex ~]#quotaoff -a 关闭quota
[root@alex ~]#rm /disk1/aquota.* 删除/disk1下的两个磁盘限额文件
[root@alex ~]#vi /etc/fstab 去除usrquota,grpquota描述

9.6磁盘阵列的RAID存储技术

一)RAID介绍

RAID技术是以硬件方式(磁盘柜及控制器)实现的存储管理技术,可以实现数据并行读写、快速的动态扩容及支持多种容错方案。

1)Raid0

由两块或两块以上硬盘组成,但是每块硬盘所贡献的空间大小必须相同,读写效率高。

2)Raid1

由两块磁盘组成,每块磁盘提供相同大小的空间,支持容错,即一块硬盘损坏后数据不会丢失,磁盘空间利用率50%。

3)Raid5

至少需要三块硬盘,每块硬盘必须提供相同的磁盘空间,提供容错功能,磁盘空间利用率n-1/n,n为磁盘数量。

4)Raid 1+0(或0+1)

【RAID 0+1】 和【RAID 1+0】的比较:

【RAID0+1】:是先做两个RAID0,然后再做RAID1,因此RAID0+1允许坏多个盘,但只能在坏在同一个RAID0中,不允许两个RAID0都有坏盘。如上图,两组盘柜错开损坏,RAID 0+1将失效,但RAID1+0可仍然存活。
【RAID1+0】:是先做RAID1,然后再做RAID0,因此RAID1+0允许坏多个盘,只要不是一对磁盘坏。

结论:RAID1+0 比 RAID0+1安全得多,因为在同一组磁盘中,两块磁盘都坏掉的概率很低。

9.7逻辑卷管理器LVM

1)Logical Volume Manager,逻辑卷管理

LVM是以完全的软件方式实现的磁盘高级管理,屏蔽了底层磁盘布局,便于动态调整磁盘容量。

【注】:/boot分区用于存放引导文件,不能应用LVM机制。

2)逻辑卷有三大优点

1、在多个磁盘上条带化存储数据,提供并行IO能力

2、可以建立磁盘镜像,提供容错功能保护数据

3、扩展性好,根据需要灵活扩容存储空间

Linux LVM如何组织并存储数据?

1)线性卷:

一个线性卷可以将多个物理卷,集合到一个逻辑卷中。示例:如果有两个磁盘,60G和40G,我们可以创建一个100G的逻辑卷。其实就是将物理存储串连在一起了,写入数据到线性卷时,数据在磁盘是顺序写入的,即第一块物理盘写满了,再写入第二块磁盘。

2)条状卷:

当向LVM逻辑卷读写数据时,文件系统在基本物理卷之间部署数据。相当于同时从多个物理盘上读写(类似RAID0技术)。对于大批量的读取和写入,这样可以提高数据输入/输出的效率。

进行条状分布:所谓的round-round。

数据的第一条写入PV1

数据的第二条写入PV2

数据的第三条写入PV3

数据的第四条写入PV1

3)镜像卷:

镜像维护不同设备中的相同的副本。当向一个设备中写入数据时,也会向第二个设备中写入,即镜像保存数据(相当于RAID1)。当镜像的一个分支失败时,逻辑卷就成为一个线性卷,但仍然可访问。使用LVM,可以创建有多个镜像的镜像逻辑卷。

LVM 的管理命令:

pvcreate 设备名
vgcreate 卷组名 物理卷名1 物理卷名2
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvextend -L +大小 /dev/卷组名/逻辑卷名


the end !!!

@jackman 共筑美好!

相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: