文件系统管理和磁盘挂载

磁盘管理

   磁盘分区自动化

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

       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命令是不行的,虽然可以实现把文件全部备份到目标空间,但是可能某些备份文件的备份时间点会不一致.

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

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

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

       

        

posted @ 2018-04-26 09:50  不懂123  阅读(1346)  评论(0编辑  收藏  举报