zoukankan      html  css  js  c++  java
  • linux磁盘管理增加,扩容

    一、磁盘空间不足,添加新的磁盘

    一般来说,当我们在服务上插入新的磁盘时,服务器是会对磁盘进行识别的。但是,有的时候服务器并没有对这些新插入的磁盘进行识别。这时,我们可以通过重启服务器,来使服务器重新加载硬盘。

    在生产环境中我们的服务器上都存在着重要的服务,并不可以对服务器进行重启。下面介绍的就是无需重启服务器,使其识别新磁盘的方法。

    解决方法:

    fdisk -l

    添加了新磁盘并没有发现两种方法(一重启,二重新识别)

    一、查看磁盘大小

    lsblk 查看的是block device,也就是逻辑磁盘大小。

    df查看的是file system, 也就是文件系统层的磁盘大小。

    二、查看主机总线号

     ls /sys/class/scsi_host/

    三、重新扫描SCSI总线添加设备

    echo "- - -" > /sys/class/scsi_host/host0/scan
    echo "- - -" > /sys/class/scsi_host/host1/scan
    echo "- - -" > /sys/class/scsi_host/host2/scan

    注意,如果扫描这三个文件不成,就全部扫描一遍

    cat /usr/local/src/test.sh
    #
    !/usr/bin/bash scsisum=`ll /sys/class/scsi_host/host*|wc -l` for ((i=0;i<${scsisum};i++)) do echo "- - -" > /sys/class/scsi_host/host${i}/scan done

    #echo "- - -" > /sys/class/scsi_host/host0/scan 这三个值代表通道,SCSI目标ID和LUN。破折号充当通配符,意思是“重新扫描一切”

    四、查看磁盘是否扫描出来

    fdisk -l



    对新磁盘进行格式化:

    1、对新磁盘进行分区(根据实际需求)

    fdisk /dev/sdb

       fdisk命令参数介绍
       p、打印分区表。
       n、新建一个新分区。
       d、删除一个分区。
       q、退出不保存。
       w、把分区写进分区表,保存并退出。

    2、再查看磁盘个数与分区情况

    3、通知内存磁盘分区变化

    不通知内核,有可能无法格式化操作
    
    partprobe /dev/sdb

    4、格式化分区(根据系统和实际情况格式化成自己想要的文件系统)

    5、创建挂载目录

    mkdir /test

    6、挂载分区指定目录,并创建开机自动挂载

    1、挂载分区
    mount /dev/sdb1 /test
    2、创建开机自动挂载
    1. 可以通过磁盘分区名挂载
    2. vi /etc/fstab

    1.可以通过磁盘分区名挂载

    2. 也可以通过uuid进行挂载

    查看磁盘的uuid

      blkid

    挂载

    一、/etc/fstab文件的作用
    
             磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
    
            系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
    
    二、挂载的限制
    
        在说明这个文件的作用之前我想先强调一下挂载的限制。
    
      1、根目录是必须挂载的,而且一定要先于其他mount point被挂载。因为mount是所有目录的跟目录,其他木有都是由根目录 /衍生出来的。
    
      2、挂载点必须是已经存在的目录。
    
      3、挂载点的指定可以任意,但必须遵守必要的系统目录架构原则
    
      4、所有挂载点在同一时间只能被挂载一次
    
      5、所有分区在同一时间只能挂在一次
    
      6、若进行卸载,必须将工作目录退出挂载点(及其子目录)之外。

    使用设备名和labeluuid作为标识的不同

                使用设备名称(/dev/sda)来挂载分区时是被固定死的,一旦磁盘的插槽顺序发生了变化,就会出现名称不对应的问题。因为这个名称是会改变的。

    不过使用label挂载就不用担心插槽顺序方面的问题。不过要随时注意你的Label name。至于UUID,每个分区被格式化以后都会有一个UUID作为唯一的标识号。使用uuid挂载的话就不用担心会发生错乱的问题了。

    第二列:Mount point:设备的挂载点,就是你要挂载到哪个目录下。

    第三列:filesystem:磁盘文件系统的格式,包括ext2ext3、ext4、reiserfsnfsvfat

    第四列:parameters:文件系统的参数

    第五列:能否被dump备份命令作用:dump是一个用来作为备份的命令。通常这个参数的值为0或者1

    第六列是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。

    二、扩充根分区

    根分区使用率超过预警值,经排查删除了无用数据,但使用率依然居高不下,于是决定扩充根分区。

      一、查看目前的使用情况

    [root@localhost Desktop]# df -h
    Filesystem               Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root   50G  3.4G   47G   7% /
    devtmpfs                 902M     0  902M   0% /dev
    tmpfs                    917M  144K  917M   1% /dev/shm
    tmpfs                    917M  9.0M  908M   1% /run
    tmpfs                    917M     0  917M   0% /sys/fs/cgroup
    /dev/mapper/centos-home   48G   33M   48G   1% /home
    /dev/sda1                497M  158M  340M  32% /boot
    tmpfs                    184M   12K  184M   1% /run/user/0

     /dev/mapper/centos-root 大小50G我们增大3G

      二、添加新的磁盘,分区格式化

    根据环境不同,自行添加新的磁盘

     1、添加完后,查看磁盘情况

    [root@localhost Desktop]# fdisk -l
    
    Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0x0005efd6
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *        2048     1026047      512000   83  Linux
    /dev/sda2         1026048   209715199   104344576   8e  Linux LVM
    
    Disk /dev/mapper/centos-root: 53.7 GB, 53687091200 bytes, 104857600 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/mapper/centos-home: 50.9 GB, 50944016384 bytes, 99500032 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0xf0480a7c
    
       Device Boot      Start         End      Blocks   Id  System

    可以看到新添加的磁盘/dev/sdb

    2、对磁盘进行分区

    fdisk /dev/sdb
    
      fdisk的交互模式,依次输入
    n
    --创建新分区 p --创建主分区 <回车> --默认分区编号 <回车> --默认起始扇区位置。 <回车> --默认结束扇区位置。
    t --设置分区类型
    8e 类型为LVM
    w --写入分区表

    3、再查看磁盘情况

    [root@localhost Desktop]# fdisk -l /dev/sdb
    
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk label type: dos
    Disk identifier: 0xf0480a7c
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1            2048    41943039    20970496   8e  Linux LVM

      三、扩充根分区:将新分区扩展/root

    1、查看卷分组

    [root@localhost Desktop]# vgdisplay -v   ##找到centos
        Using volume group(s) on command line.
      --- Volume group ---
      VG Name               centos
      System ID             
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  4
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                3
      Open LV               3
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               99.51 GiB
      PE Size               4.00 MiB
      Total PE              25474
      Alloc PE / Size       25458 / 99.45 GiB
      Free  PE / Size       16 / 64.00 MiB
      VG UUID               eajt4v-Jdef-HZmX-U6AL-kOTp-lc1w-nHXcBe

      2、为新增的分区创建物理卷

    [root@localhost Desktop]# pvcreate /dev/sdb1
    ##提示是否擦除xfs签名,可以根据实际情况选择
    WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
      Wiping ext4 signature on /dev/sdb1.
      Physical volume "/dev/sdb1" successfully created

      3、查看结果

    [root@localhost Desktop]# pvdisplay /dev/sdb1
    ##可以看到新创建的20GiB大小的物理卷:
    "/dev/sdb1" is a new physical volume of "20.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 20.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID JSpfvR-zsge-XRVU-CRT2-ubec-LcmO-oZtxmD

      4、扩展卷分组,"centos"是vgdisplay命令查到的卷分组名

    [root@localhost Desktop]# vgextend centos /dev/sdb1
      Volume group "centos" successfully extended

      5、查看逻辑卷,并扩展逻辑卷

    lvdisplay
    
      可以看到/dev/centos/root目前的LV Size是50G。
    [root@localhost Desktop]# lvextend -L +3G /dev/centos/root
    Size of logical volume centos/root changed from 50.00 GiB (12800 extents) to 53.00 GiB (13568 extents).
    Logical volume root successfully resized.   注:
    +3G是我们要新增加的分区大小。

      6、扩展后执行

    [root@localhost Desktop]# xfs_growfs /dev/centos/root
    meta-data=/dev/mapper/centos-root isize=256    agcount=4, agsize=3276800 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=0        finobt=0
    data     =                       bsize=4096   blocks=13107200, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
    log      =internal               bsize=4096   blocks=6400, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    data blocks changed from 13107200 to 13893632
      
         将文件系统扩大,完成。
    
      因为安装CentOS用的xfs分区,所以使用命令xfs_growfs扩展文件系统大小。xfs_growfs 同步文件系统

    tips:此处有区别:centos6.x 和centos7.x的区别

    resize2fs /dev/mapper/cl00-root #centos6.x调整分区命令

    xfs_growfs /dev/mapper/cl00-root #centos7.x调整分区命令

    7、查看结果

    [root@localhost Desktop]# df -hT
    Filesystem              Type      Size  Used Avail Use% Mounted on
    /dev/mapper/centos-root xfs        53G  3.4G   50G   7% /
    devtmpfs                devtmpfs  902M     0  902M   0% /dev
    tmpfs                   tmpfs     917M  144K  917M   1% /dev/shm
    tmpfs                   tmpfs     917M  9.0M  908M   1% /run
    tmpfs                   tmpfs     917M     0  917M   0% /sys/fs/cgroup
    /dev/mapper/centos-home xfs        48G   33M   48G   1% /home
    /dev/sda1               xfs       497M  158M  340M  32% /boot
    tmpfs                   tmpfs     184M   12K  184M   1% /run/user/0

    /已经扩充到53GiB

    8、创建PV,扩容VG,LV

    pvcreate /dev/hda6
    
    vgdisplay #查看当前已经存在的VG信息,以存在VG:VolGroup00为例
    
    vgextend VolGroup00 /dev/hda6    #扩展VolGroup00
    
    lvdisplay #查看已经存在的LV信息,以存在LV:LogVol01为例
    
    lvextend –L 1G /dev/VolGroup00/LogVol01 #扩展LV
    
    resize2fs /dev/VolGroup00/LogVol01 #执行该重设大小,对于当前正在使用的LogVol01有效
    
    df –h #查看挂载情况,已经扩容

     

    四、疑难解决

    1、扩充逻辑卷报错
     执行lvextend -L +20G /dev/centos/root,报错
    
      Insufficient free space: 5120 extents needed, but only 5119 available
    
        2、解决如下
      执行pvdisplay可以看到可用的PE数量是5119,而每个PE大小是4.00MiB,所以其实这个卷组实际的可用空间其实不是20G,而是19.99G。

      五、补充知识

      /dev/mapper/VolGroup00-LogVol00
      这行的意思是,你有一个VG (volume group卷组)叫作VolGroup00, 这个VolGroup00里面有一个LV(logical volume 逻辑卷)叫作LogVol00
    
      其实这个/dev/mapper/VolGroup00-LogVol00 文件是一个连接文件,是连接到/dev/dm-0的,你可以用ll /dev/mapper/VolGroup00-LogVol0 查看,你就当VolGroup00-LogVol00是一个分区来对待就可以了.
      在你的系统里,/dev/VolGroup00/LogVol00 和 /dev/mapper/VolGroup00-LogVol00 和/dev/dm-0 是一个东西,都当作一个分区来对待就好.
    
      1.如果你想查看两个硬盘在哪,你可以用pvdisplay来查看,两个硬盘做为PV(physical volume 物理卷)的身份加进了VG里,所以你是找不到
    硬盘的,因为它们已经加进了VG里,可以把VG当作一个资源池来对待,把所有的存储空间加到池里,然后你想要多大的空间,就从池里划出来就可以了.   2.比如两个1T的硬盘,加进了池里,池里的空间就是2T,你就可以建一个1T以上的空间出来,不会像以前那种,最大只能是1T(因为硬盘就是1T的)。

     来自:

    https://www.cnblogs.com/happy-king/p/9070496.html  磁盘空间不足,添加新的磁盘,扩充根分区

    http://www.cnblogs.com/qiyebao/p/4484047.html  Linux命令-自动挂载文件/etc/fstab功能详解

    https://blog.csdn.net/GX_1_11_real/article/details/82024550  Linux服务器添加新硬盘无法识别解决方法(无需重启)

  • 相关阅读:
    csharp: Cyotek.GhostScript.PdfConversion pdf convert image
    csharp: using Acrobat.dll pdf convert images in winform
    机器学习实战---K均值聚类算法
    机器学习实战---决策树CART回归树实现
    机器学习实战---决策树CART简介及分类树实现
    机器学习实战---线性回归(更好的使用正规方程求解)
    机器学习实战---逻辑回归梯度上升(更好的理解sigmoid函数的含义并改进)
    机器学习实战---朴素贝叶斯算法使用K折交叉验证
    机器学习实战---朴素贝叶斯算法
    机器学习实战---决策树ID3算法
  • 原文地址:https://www.cnblogs.com/luck666/p/10194004.html
Copyright © 2011-2022 走看看