之前创建的一个center os,默认是8GB,经过一顿折磨,装jdk,tomcat,redis,mycat,nginx,mysql,hadoop...终于,内存不足了,在使用docker build某镜像的时候。迭代懵逼了,怎么解决???
首先使用df -hl查看内存的使用情况。
图1
1)关了虚拟机,在vm虚拟机--设置--硬盘--实用工具-扩展,将物理大小调整为需要的大小(本次调整为40G)。
2)进行了物理扩容,但是还不能用,因为需要在操作系统中进行挂载。使用 fdisk –l命令可以看到当前的物理内存的确扩大了。
图2
3)现在开始挂载,输入fdisk /dev/sda,会提示输入m,然后会看到如下界面。
图3
输入编号执行相应的操作,这里需要增加一个分区,所以输入n,然后会询问增加主分区还是拓展分区,这里选择主分区,反正还有剩余(下图是我添加过一次,为了记录过程再次演示的) 此时, fdisk 会让你选择主分区的编号,如果已经有了主分区 sda1 , sda2 ,那么编号就选 3 ,即要创建的该分区为 sda3.
图4
然后会有提示输入起始扇区和结束扇区,有两次,都直接回车选择默认就可以了。会回到图3的界面,输入w保存退出。
然后重启机器,重启后 使用命令ls /etc/sda* 会看到多出来了一块sda分区(此处为sda3,取决于上面输入的主分区号)。但是新增的这个分区还是不能用的,因为没有格式化。
4)接下来进行格式化,格式化为什么文件系统呢?首先使用命令 df –lhT 查看一下原来的文件系统格式,可以看到图5中,使用的是xfs。
图5
然后格式化分区,mkfs -t xfs /dev/sda3
图6
5)挂载,需要找一个挂载点,这里选择/mnt/sda3,如果没有文件夹自己手动创建(mkdir)
mount /dev/sda3 /mnt/sda3 挂载,没有报错就表示成功,
然后修改 /etc/fstab 文件,在这个文件里面添加一行:
/dev/sda3 /mnt/sda3 xfs defaults 0 0
最后使用df –hl查看,ok,搞定
-------------------3-4-----------------------------
mdzz,结果失败了。。。。。发现依旧没用,还是会提示内存不足,但是使用df -hl发现确实内存挂在/mnt/sda3下了,查了一下方案,原来是方向错了。
补救一下,首先umount /mnt/sda3
然后创建sda3分区 建为物理卷 (pvcreate /dev/sda3)
然后 增大卷组容量vgextend centos /dev/sda3 注意此处centos与/dev/mapper/centos-root 8.5G 8.5G 652K 100% /中的 centos-root的centos一致。
然后,现在才能扩展逻辑卷的大小 (lvextend -L +30G /dev/centos/root)
然后resize2fs /dev/centos/root,发现报错
resize2fs: Bad magic number in super-block 当尝试打开 /dev/centos/root 时
找不到有效的文件系统超级块.
------
因为使用的是xfs系统,所以要使用
xfs_growfs /dev/centos/root 命令来拓展。也就是说,最后一条命令取决于不同的文件系统。