• 磁盘存储和文件系统


    1.机械磁盘和固态硬盘

    机械硬盘:传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机等,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。

    固态硬盘:用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。

    固态硬盘SSD传输速率性能是HDD的2倍

    相较于SSD,HDD在价格,容量占有绝对优势

    硬盘有价,数据无价,目前SSD不能完全取代HHD

    2.硬盘存储术语

    head:磁头 磁头数=盘面数

    track:磁道 磁道=柱面数

    sector:扇区,512bytes

    cylinder:柱面 1柱面=512*63*255=7.84M

    识别SSD和机械硬盘类型

    lsblk -d -o name,rota
    1表示机械,0表示ssd

    3.MBR分区

    MBR:1982年,使用32位表示扇区数,分区不超过2T

    MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

    MBR分区:主和扩展分区对应1-4,/dev/sda3,逻辑分区从5开始,/dev/sda5

    分区表含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1,分区项2,分区项3,分区项4

    结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55aa

    备份MBR的分区表,并破坏后恢复

    [13:43:13 root@centos7 ~]$dd if=/dev/sda of=ybw bs=1 count=64 skip=446
    [13:47:11 root@centos7 ~]$scp ybw 10.0.0.8:
    备份分区表 [
    13:49:51 root@centos7 ~]$dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
    破坏分区表
    [14:00:39 root@centos7 ~]$reboot 用光盘进入救援模式 ifconfig ens33 10.0.0.7/24 配置ip地址 scp 10.0.0.8:/root/ybw . 拷贝到本机 dd if=ybw of=/dev/sda bs=1 count=64 seek=446 reboot 恢复分区表

    4.GPT分区

    GPT支持128个分区

    使用128为uuid表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位

    GPT分区结构分为4个区域

    GPT头

    分区表

    GPT分区

    备份区域

    5.管理分区

    lsblk:列出块设备

    创建分区命令

    fdisk [device...]:管理MBR分区

    fdisk -l 查看分区

    子命令:

    l 查看可更改的类型

    p 分区列表

    t 更改分区类型

    n创建新分区

    d删除分区

    v校验分区

    w保存并退出

    q 不保存并退出

    u 转换单位

    gdisk[device...]:管理GPT分区

    cat /proc/partations:查看内核是否已经识别新的分区

    partprobe:重新设置内存中的内核分区表版本,适合除了Centos6以外的其他版本5,7,8

    6.文件系统

    linux常用文件系统

    ext4:是ext文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳,创建和使用举行文件16TB,最大1EB的文件系统,以及速度的tisheng

    xfs:支持最大8EB的文件系统

    cat /proc/filesystems:查看当前支持的文件系统

    7.创建文件系统

    mkfs.ext4 /dev/sda

    xfs

    btrfs

    常用选项

    -b 指定块block大小

    -L ‘LABEL’设置卷标

    -N 指定分区中创建多少个inode

    -m 默认5%,为管理人员预留空间占中空间的百分比

    8.查看和管理分区信息

    blkid 可以查看块设备属性信息

    findfs查找分区

    [15:15:57 root@centos7 ~]$findfs UUID="fa11e439-93c9-4f96-89e9-9903bd003f55"
    /dev/mapper/centos-home

    [15:21:53 root@aiyoubucuo ~]$findfs `sed -rn '/boot/s#^([^ ]+).*#1#p' /etc/fstab`
    /dev/nvme0n1p1

    tun2fs:重新设定ext系列文件系统可调整参数的值

    -l 查看指定文件系统超级块信息

    -L  ‘LABEL’ 修改卷标

    -m  修改管理人员预留空间占中空间的百分比

    -U uuid 修改uuid号

    9.挂载 

    挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其他文件访问入口的行为

    卸载:为解除此关联关系的过程

    mount

    mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint

    device:指明要挂载的设备

    设备文件:列如:/dev/sda5

    卷标:-L ‘LABEL’,列如-L ‘data’

    UUID:-U ‘UUID’ :列如-U ‘e5d250a7-eb14-4f2b-9452-b9bb36c3dfec’

    伪文件系统名称:proc,sysfs

    mountpoint:挂载点目录必须事先存在,建议使用空目录

    -t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs

    -r 只读挂载

    -w 读写挂载,此为默认设置,可省略

    -n 不更新/etc/mtab, mount不可见

    -L ‘LABEL’ 以卷标指定挂载设备

    -U ‘UUID’ 以UUID指定要挂载的设备

    -o 多个选项使用逗号分隔

    卸载文件系统umount

    umount 设备名|挂载名

    持久挂载

    将挂载保存到/etc/fstab中可以下次开机时,自动启用挂载

    /etc/fstab

    UUID=e5d250a7-eb14-4f2b-9452-b9bb36c3dfec /data      ext4    defaults        0 0
    要挂载的设备或伪文件系统LABEL,UUID,伪文件名称 挂载点 文件系统类型 挂载选项

    添加新的挂载项,需要执行下面命令生效

    mount -a

    10.swap介绍

    swap交换分区是系统RAM的补充,swap分区支持虚拟内存。当没有足够的RAM保存系统处理的数据时会将数据写入swap分区,当系统缺乏swap空闲时,内核会因RAM内存耗尽而终止进程。配置过多swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap空间还会掩盖内存泄漏

    注意:为优化性能,可以将swap分布存放,或高性能磁盘存放

    官方推荐

    系统中的RAM量                 推荐的swap空间                允许休眠的建议swap空间大小

    低于2GB                              RAM量的2倍数                           RAM容量的三倍

    2GB-8GB                             等于RAM量                                 RAM量的倍数

    8GB-64GB                            4GB到RAM容量的0.5倍                RAM容量的1.5倍

    超过64GB                              独立负载(至少4GB)                  不建议使用休眠功能

    交换分区实现过程

    创建交换分区或文件

    使用mkswap写入特殊签名

    在/etc/fstab文件中添加适当的条目

    使用swapon -a 激活交换空间

    swapon [option] ...[device]

    -a:激活所有的交换分区

    -p :指定优先级,也可在/etc/fstab 在第四列指定:pri=value,需要swapoff  /dev/... 再swapon -a

    -s 可以查看swap分区信息

    禁用swap分区

    swapoff

    11.磁盘常见工具

    df [option] ...[file] ...

    -H 已10为单位

    -i inodes节点编号

    -h human-readable

    -T 查看挂载文件系统

    du [option] ... DIR

    -h  可读的

    -s summary概要

    --max-depth=# 指定最大目录层级

    -x 忽略不在同一个文件系统的目录

    [10:10:34 root@centos7 ~]$du -sh /etc
    31M    /etc

    工具dd

    dd if=/path/from/src of=/path/to/dest bs=# count=#

    if=file 从所命名文件读取而不是从标准输入

    of=file 写到所命名的文件而不是到标准输出

    bs=size 指定块大小

    skip=blocks 写入文件从开头忽略blocks个ibs大小的块

    seek=blocks 目标文件忽略多少个块

    count=n 复制n个bs

    notrunc 不截断输出文件

    [10:29:20 root@centos7 ~]$echo abcdef >f1.txt 
    [10:31:28 root@centos7 ~]$cat f1.txt 
    abcdef
    [10:31:33 root@centos7 ~]$echo 123456789 >f2.txt 
    [10:31:57 root@centos7 ~]$cat f2.txt 
    123456789
    [10:32:02 root@centos7 ~]$dd if=f1.txt of=f2.txt bs=1 count=2 skip=3 seek=4
    2+0 records in
    2+0 records out
    2 bytes (2 B) copied, 0.000264134 s, 7.6 kB/s
    [10:32:41 root@centos7 ~]$cat f2.txt 
    1234de

    12 RAID

     

     空间利用率:N

    最少硬盘数:1+

    优点:读写性能提升

    缺点:无容错能力

    空间利用率:%50N

    最少硬盘数:2+

    优点:有冗余能力,读性能提升

    缺点:写性能下降,磁盘利用率不高

    空间利用率:n-1

    最少硬盘数:3,3+

    优点:读写性能提升,有容错能力

    缺点:最多允许1块磁盘损坏

    空间利用率:n-2

    最少硬盘数:4,4+

    优点:读写性能提升,有容错能力,最多允许2块磁盘损坏

    缺点:最多允许2块磁盘损坏

    空间利用率:n-2

    最少硬盘数:4,4+

    优点:读写性能提升,有容错能力,

    缺点:当一块硬盘损坏时,再坏一块系统损坏的概率为2/3

    空间利用率:n-2

    最少硬盘数:4,4+

    优点:读写性能提升,有容错能力,

    缺点:当一块硬盘损坏时,再坏一块系统损坏的概率为1/3

    13.逻辑卷管理器

    LVM:可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,允许可以弹性的更改LVM的容量

    实现过程

    将设备指定为物理卷

    用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域来定义的

    在物理卷上创建的逻辑卷,是由物理区域PE组成

    可以再逻辑卷上创建文件系统并挂载

     实现逻辑卷

    工具来自lvm2包

    pv管理工具

    pvs:显示简要pv信息

    pvdisplay 详细

    [11:31:45 root@centos7 ~]$pvcreate /dev/sdc1 
    创建pv
    [11:32:55 root@centos7 ~]$pvremove /dev/sdc1
    移除pv

    vg管理工具

    vgs,vgdisplay

    [11:37:28 root@centos7 ~]$vgcreate -s 16M ybw /dev/sdc1
    -s指定PE大小默认4M,卷组名ybw
    [11:48:26 root@centos7 ~]$vgextend ybw /dec/sdd
    添加额外的磁盘到卷组ybw中
    [11:54:44 root@centos7 ~]$vgreduce ybw /dev/sdd
    从卷组ybw中移除sdd
    [11:56:49 root@centos7 ~]$vgremove ybw
    删除卷组

    lv管理工具

    lvs,lvdisplay

    [12:02:50 root@centos7 ~]$lvcreate -L 1G  -n nihao ybw
    从卷组中取出1G添加到nihao逻辑卷中
    [12:02:25 root@centos7 ~]$lvremove /dev/ybw/nihao
    删除逻辑卷

     范例

    [14:09:08 root@centos7 ~]$pvcreate /dev/sdc1 /dev/sdd
    [14:09:44 root@centos7 ~]$vgcreate ybw /dev/sdc1 /dev/sdd
    [14:13:35 root@centos7 ~]$lvcreate -L +1G -n nihao ybw
    [14:20:36 root@centos7 /]$mkfs.ext4 /dev/ybw/nihao
    [14:21:20 root@centos7 /]$vim /etc/fstab
    UUID=cba62b6f-46bc-49d3-ba65-c2a0677c9f1b /data  ext4    defaults      0 0
    永久挂载

     在线扩展逻辑卷

    [14:59:51 root@centos7 ~]$lvextend -L +1G /dev/mapper/ybw-nihao
    扩容1G
    [15:03:56 root@centos7 ~]$resize2fs /dev/mapper/ybw-nihao
    注意还要扩容文件系统
    resize2fs扩容ext文件系统
    xfs_growfs 针对xfs
    lvresize -r -L +1G /dev/mapper/ybw-nihao
    一步实现空间和文件系统的扩展

    缩减逻辑卷

    注意缩减有数据损坏的风险,建议先备份再缩减,xfs文件系统不支持缩减

    [15:04:41 root@centos7 ~]$umount /dev/mapper/ybw-nihao
    解除挂载
    [15:13:14 root@centos7 ~]$e2fsck -f /dev/mapper/ybw-nihao
    检查是否正常
    [15:16:59 root@centos7 ~]$resize2fs /dev/mapper/ybw-nihao 1G
    [15:17:06 root@centos7 ~]$lvreduce -L -1G /dev/ybw/nihao
    [15:22:04 root@centos7 ~]$mount /dev/mapper/ybw-nihao /data

    逻辑卷快照

    快照是特殊的逻辑卷,他是在生成快照时存在的逻辑卷的准确拷贝,对于需要备份或者复制到现有数据临时拷贝以及其它操作来说,快照时最合适的选择,快照只有在他们和原来的逻辑卷不同时才会消耗空间,建立快照的卷大小小于等于原始逻辑卷,也可以使用lvextend扩展快照

    逻辑卷管理快照

    快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享

    特点

    备份速度快,瞬间完成

    应用场景是测试环境,不能完成代替备份

    快照后,逻辑卷的修改速度会有一定影响

    实现逻辑卷快照

    [15:45:15 root@centos7 ~]$lvcreate -l 64 -s -n data-snapshot -p r /dev/mapper/ybw-nihao
    为现有逻辑卷创建快照
    [15:47:07 root@centos7 ~]$mkdir -p /mnt/snap
    [15:51:54 root@centos7 ~]$mount -o ro,nouuid /dev/ybw/data-snapshot /mnt/snap
    挂载快照
    [15:53:54 root@centos7 ~]$umount /dev/mapper/ybw-data--snapshot 
    [15:56:02 root@centos7 ~]$umount /dev/mapper/ybw-nihao 
    [15:56:07 root@centos7 ~]$lvconvert --merge /dev/ybw/data-snapshot
    恢复快照
    [16:02:44 root@centos7 ~]$umount /mnt/snap
    删除快照
  • 相关阅读:
    Sql:主表与子表的最新记录级联查询
    发现eclipse红叉,查看markers发现Target runtime Apache Tomcat 6.0 is not defined
    The required Server component failed to start so Tomcat is unable to start问题解决
    Spring官网下载dist.zip的几种方法
    SPRING---------配置文件的命名空间
    eclipse中egit插件使用
    eclipse不自动弹出提示(alt+/快捷键失效)
    使用jenkins配置.net mvc网站进行持续集成
    windows系统的便签
    Linq to Entity 动态拼接查询条件(重点是OR)
  • 原文地址:https://www.cnblogs.com/aiyoubucuo/p/14159281.html
Copyright © 2020-2023  润新知