linux磁盘及文件系统管理

创建设备文件

   

固态、机械盘识别

      RM:1 表示机械式的  0表示固态盘

      lsblk  -d  -o  name,rota

 

虚拟机vmware识别被添加的硬盘 ;centos7、8已验证ok

    单独执行

                echo  '- - -' >/sys/class/scsi_host/host0/scan

    脚本执行

      for i in  `ls /sys/class/scsi_host/`

      do

      echo "- - -" > /sys/class/scsi_host/$i/scan

      done

      echo  "ok "

      lsblk 

硬盘可以被使用步骤

分区

      分区方式  分区策略一样的可以用其他主机的分区表拷贝过来还原 

              MBR  Master Boot Record 主引导分区  这种分区方式最多支持硬盘空间为2T

        0磁道0扇区  大小512bytes ,其中 446bytes为boot loader ,64bytes是分区表,其中每16bytes标识一个分区,2bytes的结束标志

              备份mbr分区表

                          dd  if=/dev/sda of=mbr.img  bs=1 count=64 skip=446

                          查看  hexdump  -C  mbr.img

              恢复mbr分区表

                          dd  if=/mbr.img  of=/dev/sda bs=1 seek=446

              GPT  最大支持128个分区,而且都是主分区

                        具备备份功能,支持

查看分区表

          parted /dev/sdb  print 

          #parted在创建,删除分区操作时,实时生效,操作时要慎重!!!!

MBR分区管理

      lsblk

      fdisk  /dev/sdb

      partprobe 同步磁盘分区表到内存

GPT分区管理

    fdisk 更合适mbr

    gdisk 

UUID,只要分区不变,UUID的值不变

创建文件系统

    mkfs.ext4    /dev/sdb1  等同于 mkfs -t ext /dev/sdb1

        -L “/mnt/sdb2” 卷标名,同挂载点名

        -b  {1024|2048|4096} 指定块大小,指给文件分配的最小空间

        -m  #  为管理人员预留空间占总空间的百分比,默认5%,#可以是整数,也可以是小数,是占整个文件系统的百分比

    给手动创建后的文件系统加acl功能  tune2fs -o acl  /dev/sdb1,重新挂载后才能生效

    查看已创建的文件系统 blkid [option]  [/dev/sdb1]

                  -U  uid值

                  -L  卷标名

            查看ext系列文件系统块大小 

                          先查文件系统类型  lsblk -f

                          在根据类型查块大小  tune2fs  -l /dev/sdb1

                         

            查看xfs系列文件系统块大小 

                    lsblk  -f

                    xfs _info  /dev/sda1

                   

         

  挂载

            1、按照设备名挂载 mount /dev/sdb1 /mnt

            2、uuid挂载  mount  -U  725a7349-602f-44d3-8367-12d879fd4541 /mnt 

            3、按照Label挂载

            mount  -r 只读方式挂载

            mount  -t  iso9660 指定文件系统挂载

            重新挂载

            mount  -o  remount,rw  /mnt 

   

umount选项  noatime访问改种配置下的文件,文件访问时间不做修改,

   

持久保存挂载信息 /etc/fstab,写入后执行mount -a 才可以生效

    一共是6列

NAME

  MOUNTPOINT

  FSTYPE

  文件系统属性,mount -o的参数

ro,rw,noatime,defaults表示rw

  1表示每天备份1次,0不备份

开始是否进行安全检查

1表示检查

0表示不检查

uuid,设备名

UUID=de60c076-8413-466f-8fb0-33fffd4909a1

    /boot

xfs

defaults

              0

        0

/dev/sdb1

      mnt

xfs

defaults

    fstab故障修复                                             

                           

           

 

##文件当作分区使用

    1、 dd if=/dev/zero  of=mp4.img  bs=1M  count=1024

              2、mkfs.xfs mp4.img

              3、mkdir mp4.img /mnt

              4、查看  losetup -a 

                   

文件系统修复:

                        注意:一定不要在挂载状态下执行修复命令!!一定要与分区上的文件系统类型(FS_TYPE)相同

                      fsck  File System Check

                      fsck.FS_TYPE   

                      fsck  -t  FS_TYPE

                      FS_TYPE:ext4,xfs....

                      常用选项

                          -a  自动修复

                          -r  交互式修复

     

                    ex4系列的专用修复命令 e2fsck /dev/sdb1 

                   

                    xfs专用修复命令  xfs_repair

                     

总结

    ip addr add 10.0.0.1/24 dev ens160 给网卡ens160配置ip

  查看内存中的分区表

          lsblk; cat /proc/partitions

            查看硬盘分区表信息,这个是真实的分区表信息

                    fdisk -l

            同步硬盘分区信息到内存

                  partprobe

        查看文件系统类型  lsblk  -f 或df    -T(df查看是已经挂载的) #df看的是块设备,可以在文件夹下挂载文件夹  mount -B /etc/  /mnt

           

XFS 文件系统 一个文件或分区可以达到8EB  centos7及以上系统默认文件系统时xfs

ext4单个文件最大可以达到16TB,文件系统最大1EB

Swap文件系统  #划分一个硬盘空间给当作内存使用,

           

      buff/cache  缓存到这里的数据是为了提高效率

      buff  缓冲区  把内存的数据写到磁盘,写缓存 

      cache  缓存  把磁盘数据读到内存      读缓存


swap建议大小

使用策略 , /proc/sys/vm/swappiness

如图:当内存剩余空间30%时,使用swap

扩充swap空间

  1、检查硬盘有无空间

  2、创建分区,查看文件系统类型,更改swap,打印,然后保存,退出

  3、mkswap  /dev/sdb6格式化为swap类型的文件系统

  4、添加到fstab

  5、挂载 swapon -a

  6、查看swap分区是由哪些设备提供的空间  swapon -s

1、检查硬盘是否有空间  可以看到sdb和sdc都有空间

lsblk

  2、创建分区,查看文件系统类型,更改swap,打印,然后保存,退出

  3、partprobe同步到磁盘空间;mkswap  /dev/sdb6格式化为swap类型的文件系统

   

  4、添加到fstab

  5、挂载 swapon -a

  6、查看swap分区是由哪些设备提供的空间  swapon -s

停用某设备作为swap

    swapoff  /dev/sdb5

把文件当作swap使用

     

    if=/dev/zero  of=/swapfile  bs=1M count=100

    chmod 600  /swapfile

    vim /etc/fstab

    swapon -a

检查swapon -s

光盘的操作

  eject 弹出光盘

  eject -t  弹入光盘

制作iso文件

      cp /dev/sr0  /data/centos8.iso

 

把某个目录打包成iso格式文件

  mkisofs  -r  -o  /root/etc.iso  /etc  命令来自genisoimage包

刻录光盘

  wodim -v ejet centos.iso

USB设备

     

      查看usb设备是否识别    lsusb 

      手动挂载  正常挂载就行

磁盘管理相关命令

du  文件数据实际使用空间

df  数据和文件系统自身元数据占用空间,不同文件系统元数据所占用空间不同

dd 

df -h和df -H结果为什么差这么多,-H是以二进制计算1M=1024k    -h,是十进制计算,1M=1000k

df  -P  不换行显示

du  -sh  /* 根下每个文件大小

dd 

   

   

#fdatasysnc,直接写入到磁盘,速度比不加此参数慢

销毁数据盘 

              dd  if=/dev/unrandom  of=/dev/sdb1

              或

              dd  if=/dev/zero  of=/dev/sdb1

因为分区不能扩展,且分区必须在一块硬盘的连续空间内,如果分区所在硬盘坏了,那么数据就没了,基于以上种种,急需采用新的技术来解决这种问题,解决方案有RAID、LVM实现分区扩展

RAID 独立盘冗余阵列

    可以实现功能

            提高IO能力,磁盘并行读写

            提高耐用性,磁盘冗余算法来实现

    RAID实现方式

     

    RAID级别

   

主流raid  0,1,5,6  raid 1 0

冗余能力

读性能

写性能

最少盘数

利用率

raid 0

没有

2+

100%

raid 1

提升

下降

2N块盘,最少两块,

50%

raid 4


3,3+

(N-1)/N

技术不用了,因为校验位单独放置在一块盘,实际使用种校验盘容易坏

raid 5

有 最多允许一块盘损坏

提升

提升

3,3+

(N-1)/N

校验位放置在不同的盘中

raid  6

有,最多允许两块盘故障

提升

提升

4,4+

(N-2)/N

校验位放置在不同的盘中

raid 0 1

提升

提升

4  4+

50%

先raid 0 ,再raid 1

基本不用了

raid  1 0

每组镜像只能坏一块

提升

提升

4  4+

50%

先raid 1    再raid 0

raid 1 0 的容错性比raid 01强,生产一般用raid 10

raid 5 0

先raid 5 再raid 0

LVM  主要作用是啥  空间的自如扩容

    Logical volume  Mnager

  VG

  LV

  PE  physical Extent 

VG=N个LV,LV里包含多个PE

VG 卷组是物理硬盘空间的组合

LV之上创建文件系统


创建逻辑卷并实现挂载

1、创建物理卷 

    pvcreate /dev/sdb /dev/sdc1或一个一个创建 pvcreate  /dev/sdb  & pvcreate /dev/sdc1

2、将物理卷加到卷组  vgcreate vg_name  /dev/sdb  /dev/sdc1 

3、创建逻辑卷

    lvcreate  -n lv_name  [  -l  PE个数 | -L 600M ]  vg_name 

  按照pe个数分 ,每个PE默认大小是4M

                  lvcreate  -n lv_name  -l  40    vg_name 

  按照大小分

                lvcreate -n  lv_name  -L  600M  vg_name

4、创建文件系统,并挂载

    mkfs.ext4

    mkfs.xfs 

 

    mount

 

5.写入  fstab 实现永久挂载

    vim fstab

    :r!blkid /dev/../lv_name

LVM实验

扩容lv

  PE全部分配  lvextend -l  +100%free  /dev/mapper/lv_data

  创建文件系统,针对ext4    resize2fs  /dev/vg_name/lv_name

  可以用如下一条命令实现上面两条命令的效果

      lvextend -r  -L  1G /dev/vg_mysql/lv_name 

 

 

扩容卷组

            pvcreate /dev/sdc

            vgextend  vg_name    /dev/sdc

物理盘上建raid,然后在raid上建lvm

df命令能看到真实空间的大小

xfs不支持lvm缩减

缩减有数据损坏的风险,建议先备份再缩减

跨主机迁移卷组,如下图  了解即可 

 

逻辑卷(LVM)快照技术

特点

      备份速度快,瞬间完成

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

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

快照原理

          是特殊的逻辑卷,只有当数据发生更改时,会把更改前的数据存放至快照区,存放的只是最初的那一版,中间改一百次,也是存第一次改动的那个数据

   

怎么查看逻辑卷中快照大小

创建快照

   

挂载快照卷 ,ext文件系统不用使用-o nouuid ,如下是xfs文件系统的配置

 

恢复快照

换掉故障的lvm使用的硬盘

移除物理盘上的数据  物理盘/dev/sdb,确保卷组有剩余空间

将/dev/sdb上的数据移除到其他磁盘

  pvmove /dev/sdb

将物理盘/dev/sdb移除卷组

    vgreduce vg_name  /dev/sdb

将sdb移除物理卷

pvremove /dev/sdb

拔掉硬盘

添加新硬盘

加入pv,加入卷组

你可能感兴趣的:(linux磁盘及文件系统管理)