• shell 脚本实战笔记(4)--linux磁盘分区重新挂载


    背景:
      Hadoop的HDFS文件系统的挂载, 默认指定的文件目录是/mnt/disk{N}. 当运维人员, 不小心把磁盘挂载于其他目录, 比如/mnt/data, /mnt/disk01, /mnt/diska时, HDFS会选择根分区, 当往HDFS里灌数据时, 导致的结果往往是根分区被快速的消耗尽, 而其他分区未见使用.
      在CDH版本中, HDFS的配置如下所示:

    dfs.datanode.data.dir => /mnt/disk{N}/dfs/dn
    dfs.datanode.data.dir.perm => 755
    

      由此可见: HDFS选择/mnt/disk{N}作为数据的存储目录是有来由的

      这种情况如何处理? 该问题的本质解决方案是, 通过重新挂载相应的磁盘分区到/mnt/diskn即可, 通过编辑fstab, 重启来实现.

    解决方案:
      1. 采用mount的方式
      *) 创建/mnt/disk{N}
      mdkir -p /mnt/disk1
      mdkir -p /mnt/disk2
      *) 挂载/mnt/disk{N}
      mount /dev/sdb2 /mnt/disk1
      mount /dev/sdc1 /mnt/disk2

      mount后的磁盘如下所示:

    root@server-ip:~ # df -h 
    文件系统 容量 已用 可用 已用% 挂载点
    /dev/sda1 459G 358G 100G 79% /
    devtmpfs 32G 188K 32G 1% /dev
    tmpfs 32G 104K 32G 1% /dev/shm
    /dev/sdb2 457G 320G 136G 71% /mnt/disk1
    /dev/sdc1 459G 289G 147G 67% /mnt/disk2

      但采用mount的方式, 能解决一时的问题, 但重启之后, 之前mount的信息就丢失了.

      2. 采用fstab的方式
      *) 编辑/etc/fstab

    # <file system> <mount point> <type> <options> <dump> <pass>
    /dev/sdb2 /mnt/disk1 ext3 defaults 0 0
    /dev/sdc1 /mnt/disk2 ext3 defaults 0 0

      *) 进行挂载测试

      mount -a
      echo $?
      mount -a没有任何输出, 并且echo $?返回结果为0, 则表示/etc/fstab配置没问题

      *) 系统重启
      reboot

    相关内容:
      1. 如何查看磁盘分区等信息
      fdisk -l
      ls /dev/sd*
      2. /etc/fstab里的配置项的含义
      <file system> <mount point> <type> <options> <dump> <pass>
      <file system>: 设备名或者设备卷标名
      <mount point>: 设备挂载目录
      <type>: 设备文件系统, vfat, ext3, ext4, swap等
      <options>: 挂载参数, 可选用defaults
      <dump>: 指明是否要备份。(0为不备份,1为要备份,一般根分区要备份)
      <pass>: 指明自检顺序。 (0为不自检,1或者2为要自检,如果是根分区要设为1,其他分区只能是2)

      /dev/sdb2 /mnt/disk1 ext3 defaults 0 0
      /dev/sdc1 /mnt/disk2 ext3 defaults 0 0

    参考链接:
      http://blog.sina.com.cn/s/blog_6ce9e88701014jgl.html
      http://www.shangxueba.com/jingyan/121709.html

  • 相关阅读:
    信息安全从业人员出路在哪里?
    内网渗透总结
    google hack使用集锦
    几十万学费总结出来的Ddos攻击防护经验!
    thinkPHP渗透之经验决定成败
    查找文件是否存在,文件属性、日期、大小;
    RS232/485通信方式 保存和加载时数据的处理
    memcpy(&pData[nDataLen],PROGDATA_FILE_FRAM,strlen(PROGDATA_FILE_FRAM)) ;
    #define BREAKIFTRUE( ret ) if( ( ret ) ) break;
    cp5200的一般步骤
  • 原文地址:https://www.cnblogs.com/mumuxinfei/p/3805035.html
Copyright © 2020-2023  润新知