Linux入门攻坚——7、磁盘管理——文件系统挂载管理及RAID、LVM

已经安装文件系统的分区需要经过挂载才能使用。

一切文件系统的使用都是从根开始,根是文件系统的起始点。

计算机启动过程:加电自检——bootloader——kernel——rootfs——/sbin/init

kernel第一步要加载根系统。

 将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录作为其他文件访问入口的行为称之为挂载;
解除此关联关系的过程称之为卸载;
把设备关联挂载点:mount point
mount
卸载时:可使用设备,也可以使用挂载点
umount

注意:挂载点下原有文件在挂载完成后会被临时隐藏;

挂载方法:mount DEVICE MOUNT_POINT
mount :通过查看/etc/mtab文件 显示当前系统已挂载的所有设备
    mount [-fnrsvw] [-t vfstype] [-o options] device dir
    device:指明要挂载的设备
        (1)设备文件:例如/dev/sda5
        (2)卷标:-L 'LABEL',如 -L 'MYDATA'
        (3)UUID:-U 'UUID',例如:-U '6a5d8ae3-5aba-4630-826a-1332dba38771'
        (4)伪文件系统名称:proc,sysfs,devtmpfs,configfs
    dir:挂载点
        事先存在:建议使用空目录:
        进程正在使用中的设备无法被卸载
    常用命令选项:
        -t vsftype:指定要挂载的设备上的文件系统类型;
        -r:readonly,只读挂载
        -w:read and write,读写挂载
        -n:不更新/etc/mtab
        -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能);
        -L 'LABEL':以卷标指定挂载设备
        -U UUID:以UUID指定要挂载的设备
        -B,--bind:绑定目录到另一个目录上。

查看内核追踪到的已挂载的所有设备:cat /proc/mounts

    -o options : 挂载文件系统的选项
        async:异步模式 (CoW,Copy on Write,写时拷贝)
        sync:同步模式
        atime/noatime:更新访问时间/不更新访问时间,包含目录和文件
        diratime/nodiratime:目录的访问时间戳
        auto/noauto:是否支持自动挂载
        exec/noexec:是否支持将文件系统上应用程序运行为进程
        dev/nodev:是否支持在此文件系统上使用设备文件
        suid/nosuid:
        remount:重新挂载
        ro:只读
        rw:读写
        user/nouser:是否允许普通用户挂载此设备
        acl:启用此文件系统上的acl功能

    注意:上述选项可多个同时使用,彼此使用逗号分隔;
              默认挂载选项:defaults——rw,suid,dev,exec,auto,nouser,and async

卸载命令:
    umount DEVICE
    umount MOUNT_POINT



当挂载设备忙时(有进程正在访问的设备),无法卸载:

所以,查看内核追踪到的已挂载的所有设备,使用:cat /proc/mounts
以上是Centos6上的实验结果,在Centos7上,-n选项挂载,mount,cat /etc/mtab中都显示挂载结果。

查看正在访问指定文件系统的进程:
    fuser -v MOUNT_POINT
终止所有正在访问指定的文件系统的进程:
    fuser -km MOUNT_POINT

挂载交换分区:
    启用:swapon [OPTION]...[DEVICE]
        -a:激活所有的交换分区
        -p PRIORITY:指定优先级;
    禁用:swapoff [OPTION]... [DEVICE]

内存空间使用状态:
free [OPTION]
    -m:以MB为单位
    -g:以GB为单位

文件系统空间占用等信息的查看工具:
df:disk free
    -h:human-readable
    -i:inodes instead of blocks
    -P:以POSIX兼容的格式输出;

查看某目录总体空间占用状态
    du [OPTION]... /dir
        -h:human-readable
        -s:summary

文件挂载的配置文件:/etc/fstab
每行定义一个要挂载的文件系统;

要挂载的设备或伪文件系统、挂载点、 文件系统类型、挂载选项、 转储频率、 自检次序

要挂载的设备或伪文件系统:
    设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc,sysfs)
挂载选项:defaults
转储频率:0,不做备份;1,每天转储;2,每隔一天转储;
自检次序:0,不自检;1,首先自检,一般只有rootfs才用1;2,...

文件系统上的其他概念:

Inode:Index Node,索引节点
    地址指针:直接指针、间接指针、三级指针
    inode bitmap:对位标识每个inode空闲与否的状态信息;

链接连接:
    硬链接:不能够对目录进行;不能跨分区进行;指向同一个inode的多个不同路径,创建文件的硬链接即为inode创建新的引用路径,因此会增加其引用计数;
    符号链接:可以对目录进行;可以跨分区进行;指向的是另一个文件的路径,其大小为指向的路径字符串的长度,不增加或减少目标文件inode的引用计数。
ln [-sv] SRC DEST
    -s:symbolic link
    -v:verbose

文件管理操作对文件的影响:
    文件删除:
    文件复制:
    文件移动:

bash脚本编程:用户交互
    read [option]...[name ...]
        -p 'PROMPT':
        -t TIMEOUT:

bash -n /path/to/some_script:检测脚本中的语法错误
bash -x /path/to/some_script :调试(单步)执行

#!/bin/bash
# Version:0.0.1
# Author:zz
# Description: read testing

read -p "Enter a disk special file:" diskfile
[ -z "$diskfile" ] && echo "Fool" && exit 1

if fdisk -l | grep "^Disk $diskfile" &> /dev/null; then
    fdisk -l $diskfile
else
    echo "Wrong disk special file."
    exit 2
fi   

RAID:Redundant Arrays of Inexpensive(Independent) Disks,廉价磁盘冗余阵列(独立磁盘冗余阵列)

提高IO能力——多个磁盘并行读写、提高耐用性——磁盘冗余实现;

级别:多块磁盘组织在一起的工作方式有所不同;

RAID实现方式:
    外接式磁盘阵列:通过扩展卡提供适配能力
    内接式RAID:主板集成RAID控制器
    Software RAID:软件实现的RAID
级别:level,0,1,2,3,4,5,6,10,01
    RAID0:条带卷,strip;读、写性能提升,无容错能力,最少磁盘数2,可用空间N*min();
    RAID1:镜像带,mirror;读性能提升、写性能略有下降,可用空间1*min(),有冗余能力,最少磁盘2;
    RAID4:单块盘作为校验盘,性能瓶颈,读写压力大    
    RAID5:读写性能提升、可用空间(N-1)*min()、有容错能力,1块磁盘,最少磁盘3
    RAID6:读写性能提升,可用空间(N-2)*min()、有容错能力,2块磁盘,最少磁盘4
    RAID10:读写性能提升,可以空间N*min()/2、有容错能力,每组做多1块,最少磁盘数4
    RAID01:
    JBOD:Just a Bunch Of Disks,将多块磁盘的空间合并成一个大的连续空间使用

常用级别:RAID0,RAID1,RAID5,RAID10,RAID50,JBOD
实现方式:    硬件实现方式、软件实现方式

Centos6上的软件RAID的实现:
    结合内核中的md(multi devices)
    mdadm:模式化的工具
        命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
            支持的RAID级别:LINEAR,RAID0,RAID1,RAID4,RAID5,RAID6,RAID10
        模式:
            创建:-C
            装配:-A
            监控:-F
            管理:-f,-r,-a
            <raiddevice>:/dev/md#
            <component-device>:任意块设备
        -C:创建模式
            -n # :使用#个块设备来创建此RAID;
            -l # :指明要创建的RAID的级别;
            -a {yes|no}:自动创建目标RAID设备的设备文件
            -c CHUNK_SIZE:指明块大小;
            -x #:指明空闲盘的个数;
        -D:显示raid的详细信息,mdadm -D /dev/md#
        管理模式:
            -f:标记指定磁盘为损坏;
            -a:添加磁盘;
            -r:移除磁盘;
        观察md的状态:cat /proc/mdstat
       
停止md设备:mdadm -S /dev/md#
        watch命令:watch -n # 'COMMAND'
            -n # :刷新间隔,单位是秒,
        如:创建一个10G可用空间的RAID5:
        使用/dev/sdb磁盘剩余的空间创建分区
            

调整类型为fd:Linux raid auto

需要在添加一个分区设备作为空闲磁盘。现在有5,6,7,8四个分区

使用mdadm创建raid5

使用,类似分区,先要安装文件系统,即格式化

将一个磁盘标注为错误:

再坏一块,也可以工作,降级使用:

可以移除坏掉的设备:

设备修复后,添加新设备

使用mdadm /dev/md0 -a /dev/sdb5,提示错误:

先停用:

重新装配

然后再增加

此时:

没有空闲磁盘了,再添加:

LVM2    LVM:Logic Volume Manager,Version:2

dm:device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块;
    /dev/dm-#

/dev/mapper/VG_NAME-LV_NAME
    /dev/mapper/vol0-root 
/dev/VG_NAME/LV_NAME
    /dev/vol0/root

.

使用LVM:

物理卷pv的管理:
1、先创建分区,并调整分区类型为8e:

2、可用的pv命令,pv管理工具
pvs:简要pv信息显示
pvdisplay:显示pv的详细信息

3、创建
pvcreate /dev/DEVICE

4、删除
pvremove /dev/DEVICE

卷组vg的管理
5、vg常用命令:

6、创建vg
vgcreate [-s #[bBsSkKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath  [PhysicalDe-vicePath...]

此时再看pv:

7、扩展vg
vgextend VG_NAME PV_NAME

8、vg缩减
减少pv设备,减少前,需要将pv上的数据移走,使用pvmove
pvmove PV_NAME
vgreduce VG_NAME PV_NAME...

逻辑卷lv的管理
9、lv的常用命令

10、创建lv
lvcreate -L #[mMgGtT] -n NAME VolumeGroup

创建的lv,有三个路径:/dev/dm-0,实际文件,两个链接路径:/dev/mapper/myvg-mylv和/dev/myvg/mylv

11、使用lv
lv就相当于一个分区,使用前要高级格式化,如格式化成ext4

12、挂载使用

13、扩展逻辑卷
lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

虽然命令执行成功,但是看挂载后的空间没有改变,需要扩展文件系统:
resize2fs

14、缩减lv,先缩减文件系统大小(必须先卸载),然后缩减lv
umount /dev/VG_NAME/LV_NAME
e2fsck -f /dev/VG_NAME/LV_NAME
resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

以上是ext系统,其他系统会有不同。

快照:snapshot

创建一个快照卷,保存某一时刻对应卷的快照,即元数据,并同时监控对应卷的数据,如果数据要改变,则在改变前拷贝其到快照卷。
lvcreate -L #[mMgGtT] -p r -s -n SnapshotLogicalVolume OriginalLogicalVolumeName

lvremove:删除逻辑卷
vgremove:删除卷组
pvremove:删除物理卷

光盘设备的挂载:
    光盘设备文件:
        IDE:/dev/hdc
        Sata:/dev/sr0
        符号链接文件:
            /dev/cdrom
            /dev/cdrw
            /dev/dvd
            /dev/dvdrw
        mount -r /dev/cdrom /media/cdrom

dd命令:convert and copy a file
    用法:
        dd if=/PATH/FROM/SRC of=?PATH/TO/DEST 
            bs=#:block size ,复制单元大小;
            count=#:复制多少个bs;
    磁盘拷贝:
        dd if=/dev/sda of=/dev/sdb
    备份MBR:
        dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
        dd if=/tmp/mbr.bak of=dev/sda bs=512 count=1

两个特殊设备:
/dev/null:数据黑洞
/dev/zero:吐零机

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/215839.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

D2822ML 用于便携式录音机和收音机作音频功率放大器。采用 DIP8 SOP8 封装形式

D2822ML 用于便携式录音机和收音机作音频功率放大器。采用 DIP8 SOP8 封装形式 特点: 电源电压降到 1.8V 时仍能正常工作交越失真小 静态电流小可作桥式或立体声式功放应用外围元件少通道分离度高 开机和关机无冲击噪声软限幅

JavaScript递归

前端面试大全JavaScript递归 &#x1f31f;经典真题 &#x1f31f;递归 &#x1f31f;真题解答 &#x1f31f;总结 &#x1f31f;经典真题 使用递归完成 1 到 100 的累加 &#x1f31f;递归 A recursive method is a method that calls itself. 递归调用是一种特殊的调…

Arrays类练习 - Java

案例&#xff1a;自定义Book类&#xff0c;里面包含name和price&#xff0c;按price排序(从大到小)。要求使用两种方式排序&#xff0c;有一个 Book[] books 4本书对象。 使用前面学习过的传递实现Comparator接口匿名内部类&#xff0c;也称为定制排序。可以按照price (1)从大到…

【Element】el-table组件使用summary-method属性设置表格底部固定两行并动态赋值

一、背景 需求&#xff1a;在表格账单中底部添加两行固定行&#xff0c;来统计当前页小计和总计。element ui 官网上是直接将本列所有数值进行求合操作的&#xff0c;且只有固定一行总计。目前的需求是将接口返回的数据填充到底部固定的两行中 二、底部添加两行固定行 2.1、…

CPP-SCNUOJ-Problem P20. [算法课回溯]优美的排列

Problem P20. [算法课回溯]优美的排列 假设有从 1 到 n 的 n 个整数。用这些整数构造一个数组 perm&#xff08;下标从 1 开始&#xff09;&#xff0c;只要满足下述条件 之一 &#xff0c;该数组就是一个 优美的排列 &#xff1a; perm[i] 能够被 i 整除 i 能够被 perm[i] 整…

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-B

2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-B 目录 2024 年甘肃省职业院校技能大赛中职组 电子与信息类“网络安全”赛项竞赛样题-B 需要环境或者解析可以私信 &#xff08;二&#xff09;A 模块基础设施设置/安全加固&#xff08;200 分&…

在sCrypt网站上铭刻Ordinals

sCrypt发布了一个新的Ordinals铭刻工具&#xff0c;连接Panda Wallet后即可使用。你可以观看我们录制的视频教程&#xff0c;获得更多细节。 铭刻工具同时支持BSV主网&#xff08;mainnet&#xff09;和测试网&#xff08;testnet&#xff09;&#xff0c;你可以在我们的官方网…

2023年道路运输企业主要负责人证模拟考试题库及道路运输企业主要负责人理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年道路运输企业主要负责人证模拟考试题库及道路运输企业主要负责人理论考试试题是由安全生产模拟考试一点通提供&#xff0c;道路运输企业主要负责人证模拟考试题库是根据道路运输企业主要负责人最新版教材&#…

Python基础快速过一遍

文章目录 一、变量及基本概念1、变量2、变量类型3、变量格式化输出4、type()函数5、input()函数6、类型转换函数7、注释 二、Python运算/字符1、算数运算2、比较运算3、逻辑运算4、赋值运算符5、转义字符6、成员运算符 三、判断/循环语句1、if判断语句2、while循环语句3、for循…

手写VUE后台管理系统8 - 配置404NotFound路由

设置404页面 配置路由404页面 配置路由 这里配置了两个路由&#xff0c;一个是主页&#xff0c;另外一个则匹配任意路由显示为404页面。因为只配置了两个路由&#xff0c;如果路径没有匹配到主页&#xff0c;则会被自动导向到404页面&#xff0c;这样就可以实现整站统一的404页…

无惧泄密:揭秘上海迅软DSE防拷贝大杀器!

对于企事业单位而言&#xff0c;文档的安全保护不仅要从源头上进行&#xff0c;杜绝文档在使用、传播过程中产生的泄密风险&#xff0c;同时也要对文档内容本身进行保护。为防止有心人通过拷贝、截屏、拍照等方式盗窃走重要文档内容信息的情况&#xff0c;天锐绿盾文件防泄密软…

当代家庭教育杂志当代家庭教育杂志社当代家庭教育编辑部2023年第19期目录

家庭教育资讯 我国拟立法完善学校爱国主义教育 4 教育部颁布《校外培训xxx行办法》 4 北京10家线上学科培训学校年检全部“通过” 5《当代家庭教育》投稿&#xff1a;cn7kantougao163.com 专家&#xff1a;家长要像关注躯体健康一样关心孩子心理健康 5 不要…

P9 链表 清空链表|销毁链表

目录 前言 01销毁链表 02 清空链表 测试代码 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《C_ChenPi的博客-CSDN博客》✨✨✨ &#x1f525; 推荐专栏2: 《Linux C应用编程&#xff08;概念类&#xff09;_ChenPi的博客-CSDN博客》✨✨✨ …

C语言二叉树的基本概念(一)

目录 二叉树 二叉树的分类&#xff08;目前只谈两种&#xff09; 满二叉树 完全二叉树 二叉树的性质&#xff08;其余的可以自己总结&#xff09; 选择练习 二叉树的存储结构 顺序存储方式 链式存储方式 二叉树 定义&#xff1a;二叉树是一种特殊的树状数据结构&…

pytorch 常用api笔记

view_as()函数 函数定义&#xff1a;view_as(tensor) [参数为一个Tensor张量] 该函数的作用是将调用函数的变量&#xff0c;转变为同参数tensor同样的形状。 例子 data1 [[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 0], [10, 11]]] t1 torch.Tensor(data1).long() # size2…

RTSP流媒体播放器

rtsp主要还是运用ffmpeg来搭建node后端转发到前端&#xff0c;前端再播放这样的思路。 这里讲的到是用两种方式&#xff0c;一种是ffmpeg设置成全局来实现&#xff0c;一种是ffmpeg放在本地目录用相对路径来引用的方式。 ffmpeg下载地址&#xff1a;http://www.ffmpeg.org/do…

Linux常用命令——atq命令

在线Linux命令查询工具 atq 列出当前用户的at任务列表 补充说明 atq命令显示系统中待执行的任务列表&#xff0c;也就是列出当前用户的at任务列表。 语法 atq(选项)选项 -V&#xff1a;显示版本号&#xff1b; -q&#xff1a;查询指定队列的任务。实例 at now 10 minu…

多路径传输(MPTCP MPQUIC)数据包调度研究总结

近些年来&#xff0c;以5G和Wifi6为代表的无线通信技术发展迅速&#xff0c;并已经在全世界实现了大规模部署。此外&#xff0c;智能手机等移动设备不断迭代更新&#xff0c;其网络通信能力也持续演进&#xff0c;使得应用同时利用多个不同网卡在多条不同物理链路上&#xff08…

【AIGCode】让AI生成随机数据

用户测试数据库性能&#xff0c;SQL性能等。 交互流程&#xff1a; 假如我的表结构是&#xff1a; CREATE TABLE prd_article_inf ( ARTICLE_INF_ID int(11) NOT NULL AUTO_INCREMENT, ARTICLE_AUTHOR varchar(24) DEFAULT NULL, ARTICLE_BRIEF varchar(255) DEFAULT NULL, …

面试题之分布式事务篇

1.什么是分布式事务&#xff1f; 概述&#xff1a;在分布式系统上一次大的操作由不同的小操作组成&#xff0c;这些小的操作分布在不同的服务节点上&#xff0c;且属于不同的应用&#xff0c;分布式事务需要保证这些小操作要 么全部成功&#xff0c;要么全部失败。 如下所示&…