百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

LINUX 磁盘管理

sinye56 2024-12-01 03:52 15 浏览 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 共筑美好!

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&amp;配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: