zoukankan      html  css  js  c++  java
  • 文件系统管理和磁盘挂载

    磁盘管理

       磁盘分区自动化

           echo -e   "n p +2G w "  | fdisk   /dev/sdc          代表回车符号  标准输入重定向

           fdisk    /dev/sdc    <<EOF   多行重定向

           磁盘用来存储小文件 就设置为小块  如果磁盘用来存储大文件  就要设置成大块    目前Linux支持 1k 2k  4k 三种block设置

           磁盘一旦创建好文件系统,块大小就不可改变

           mkfs.ext4     /dev/sda2  -b 1024 

           ext2 和 ext3   大体上就差一个日志功能

       分区相关命令

           blkid      默认显示当前系统中所有已经有文件系统的块设备的信息

           blkid -U  UUID   

           e2label   /dev/sda1  显示sda1的卷标                   e2label  /dev/sda1  newlable   修改sda1的卷标

           findfs   LABEL="label" 或者 UUID="uuid"            查找分区

           tune2fs    -U     `uuidgen`    /dev/sda1                 修改分区的UUID

           一个分区的三种表示方法    1.分区名(/dev/sda1)      2.LABEL             3.UUID(推荐用来表示一个分区)

       修复文件系统

            执行修复文件系统的命令的时候,这个分区不能处于挂载状态,必须先把分区卸载

            fsck    /dev/sda1  -y

     磁盘挂载命令

        一个挂载点同时只能挂载一个设备,以最后的挂载为准           一个设备可以同时挂载到多个文件夹上.

       mount         /dev/sda1       /root/data

       umount       /dev/sda1

       只有root用户才有权限进行挂载和取消挂载的操作

       mount    -B     dir1    dir2      -B 选项      可以实现目录dir2上挂载目录dir1

       mount   -o   remount    /dev/sda1    功能类似于先umount然后再mount,有时候(有其它用户正在访问)无法umount可以通过此选项实现重新挂载

       异步async    源磁盘 》 内存 》 buffer 》目标磁盘

       同步sync      源磁盘  》内存 》目标磁盘

       可以把一个文件模拟一个分区来使用  mkfs.ext4 file1               mount -o  loop  /root/file1            blkid  file1

       分区   文件夹   文件  三种类型资源都可以挂载到一个文件夹   

       推荐把设备挂载到一个空文件夹中,如果不是空文件夹那么挂载设备后,原来文件夹中的内容将被隐藏起来.取消挂载后,原来文件就会恢复显示.

    挂载点和/etc/fstab

    设备名/UUID/LABEL                                                挂载点        文件系统类型       挂载选项         备份的间隔            开机时是否检查文件系统        

    UUID=1ec9c7b3-bec1-4998-9aad-057423419431    /                     xfs                     defaults                    0                                  0

    UUID=df74adc0-09cd-4a97-a1e4-9f0d4a4b5796     /boot               xfs                     defaults                    0                                  0

    挂载(文件/光盘/文件夹)不能写UUID只能写设备名

    /root/file1                                                         /mnt/file1          ext4                     loop                        0                                   0

    /dev/sr0                                                           /mnt/cdrom       iso9660                defaults                  0                                   0

    /boot                                                               /mnt/boot           none                     bind                        0                                   0

    如果/etc/fstab中的设备名或者挂载点出现问题,而且设置了开机检查文件系统的完整性. 那么操作系统将无法启动.

    mount   -o    rw,remount      /     重新以可读可写的方式挂载(/)某个文件系统

    迁移home到一个新的分区:

          1.新建一个分区(分区是没法变大变小的,因为分区是需要连续的磁盘空间)  fdisk     /dev/sdb

          2.在新建的分区上创建文件系统     mkfs.ext4   /dev/sd1

          3.把新的分区挂载到一个临时目录

          4.init 1  切换到单用户模式,防止在备份数据的时候有其它用户正在修改相关数据 (导致网络会出现中断)

          5.备份原来home的数据到新的分区上       cp -av     /home/*    /mnt/home/

          6.修改/etc/fstab配置文件。  rm -rf /home/*      mount   -a     重新挂载所有设备

          7. init  5  切换到正常访问模式

    swap文件系统

        交换分区是把磁盘当内存来使用的,避免内存空间不足, 造成应用程序运行失败.   把f1文件里的内容写入f2文件磁盘和内存的操作.

        当执行f1写入f3的时候,无需再次从磁盘读取数据,直接从内存cache中读入buffer中然后再写入f3中.

     使用文件来模拟swap分区

           1.  生成对应大小的文件(相当于创建分区)     dd if=/dev/zero   of=/swapfile  bs=1024M  count=2

           2.  创建文件系统  mkswap      /swapfile

           3.  挂载    

           4.swapon   -a  更新 swap      查看swap   swapon    -s              禁用swap   swapoff   /swapfile      

           

     制作启动引导iso镜像

        cp      /cd1   /data     cp /cd2  /data

        mkisofs -r -o     myname.iso        /data                mkisofs 制作成的iso不能作为引导光盘,只能做yum源

        mkdvdiso.sh   /data   myname.iso                       这个既可以做引导光盘,同时也可以作为yum源

        du     -h          /root        统计root目录下每个子目录的大小
        du    -sh         /root        统计root目录本身的大小

    dd工具命令

        dd if=/dev/zero  of=/dev/sda   bs=1  count=64   seek=446                seek表示目标文件(sda)的偏移量

        dd if=fileA      of=fileB   bs=1   count=128    skip=63   seek=31         skip 表示源文件(fileA)的偏移量   seek表示目标文件(fileB)的偏移量

        测试硬盘读写速度

         写速度          dd   if=/dev/zero    of=/root/file1  bs=1024    count=1000000

         读速度          dd   if=/file1    bs=64k  |  dd of=/dev/null

          

    磁盘RAID

     raid设备相对于单块磁盘分区的优势是          读写性能的提高和数据的容错性

     raid0     至少两块磁盘,性能好。无容错性.    多块硬盘并行存储或者读取一个文件.以chunk为单位.

     raid5     把数据和奇偶效验位均匀的存储在不同的磁盘上

     raid1     镜像存储,写性能一样,   读性能有提高 

     raid10   先做raid1再做raid0

     raid01   先做raid0再做raid1

     创建raid命令

        mdadm -C    /dev/md0     -a yes  -l5   -c 32   -n 3 -x1 /dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

        mdadm -D    /dev/md0                                             查看raid设备信息

        mkfs.ext4     /dev/md0    -L raid5Label                    给raid设备创建文件系统 并创建卷标标签

        mount        /dev/md0      /mnt/raid                           挂载raid设备.如果需要永久生效必须写入/etc/fstab配置文件

        mdadm    -Ds  /dev/md0  >  /etc/mdadm.conf         生成raid的配置文件,防止重启raid设备因找不到配置文件失效

        umount           /dev/md0

        mdadm   -S     /dev/md0    停用raid设备                mdadm  -A    /dev/md0         启用raid设备

        mdadm   /dev/md0  -r     /dev/sdb1                        从raid设备中移除某个分区磁盘    把 -r  换成  -a  则变成添加磁盘分区

        resize2fs         /dev/md0                                           centos6同步raid设备所有分区的文件系统

        xfs_growfs       /dev/md0                                          centos7同步raid设备所有分区的文件系统

    删除raid设备

         取消raid设备挂载

         删除 /etc/fstab中的配置文件

         mdadm -D /dev/md0     查看raid设备中所有的磁盘分区

         fdisk  删除raid中包含的所有分区

         mdadm   --zero-superblock       /dev/sdb1     或者  dd if=/dev/zero   of=/dev/sdb1     清除磁盘分区中超级块包含的raid元数据信息

    LVM逻辑卷管理

         相对于普通磁盘分区的优势是   可以方便的扩展容量大小   普通分区一旦分好,将不能再进行改变

         步骤一: 把物理分区或者磁盘变成一个物理卷的概念.物理卷(PV)使用固定大小的物理区域(PE)组成的。

                        相当于给这个磁盘或者分区贴上一个标签,表示此设备不再用作分区来用,而是做为逻辑卷来用.

                         pvcreate    /dev/sda

         步骤二:把多个物理卷集合到一起,组成一个物理卷组(VG)  一个卷组相当于一个逻辑上的大硬盘     

                        vgcreate  -s 16M  vg0   /dev/sda   /dev/sdb

         步骤三:创建逻辑卷(LV)  相当于在物理卷组上划分分区.   

                        lvcreate    -n lv0  -l 20  vg0

                       逻辑卷的扩容是以PE位基础单位大小进行扩大和缩减的

                       lvextend   -l   100  /dev/vg0/lv0

    逻辑卷迁移

            pvmove    /dev/sdd        把/dev/sdd上已经被分配出来使用的PE移动到同一卷组中的其它成员上  删除VG中的PV

    逻辑卷快照

          快照本身也是一种逻辑卷,和被快照的逻辑卷同时存储在一个卷组中.创建快照的时候速度非常块,因为这个时候只是在磁盘上分配一块空间而已.

          只有在对被快照逻辑卷的数据进行修改或者删除的时候,才会把原来的数据推送到快照区域中.无论修改多少次,快照中保留的是最原始的文件,被

          快照的磁盘存的是最新的数据,只保留两个版本.使用快照恢复,只能恢复到做快照时候的最原始版本,中间的修改都会丢失.

          没有做任何修改的文件是不会被推送到快照空间中去的,基于快照的原理,快照是不能完全代替备份的.

          快照的空间只需要小于等于原始空间即可(快照中只保存被修改过的文件)

         

         

         备份数据库的时候,直接使用cp命令是不行的,虽然可以实现把文件全部备份到目标空间,但是可能某些备份文件的备份时间点会不一致.

         可以先对整个数据库文件进行一个快照,快照空间保存的是所有数据库文件在相同时间点的原始状态.

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

         没有改动的区域则由快照区和文件系统共享 这样就可以实现进入快照空间可以看到原始数据 实现类似备份的效果

           

            

  • 相关阅读:
    接口性能测试方案
    如何选择自动化测试框架
    一维和二维前缀和
    高精度 加减乘除
    归并排序 快速排序
    链表
    二分查找
    表达式求值
    c++ const问题小记
    虚继承总结
  • 原文地址:https://www.cnblogs.com/yxh168/p/8921706.html
Copyright © 2011-2022 走看看