运维案例:HP服务器,LINUX系统在保障数据的前提下扩展/home分区

  • 部门需求:研发部门提出需要在现有的服务器上扩容磁盘空间,以满足开发环境的磁盘需求。现有空间1.6T需要增加到2T.

  • 需求调查分析:1、硬件环境:服务器 hp dl380 GEN9,磁盘配置(600G*4),raid5;当前还有4个硬盘槽位可用。2、系统:ubuntu 1404,系统整体空间1.6T。/分区 100G /Home分区 1.6T /SWAP 20G。有此需求的服务器数量5台。

  • 解决方案:1、加硬盘:增加1块600G硬盘。2、raid调整:在现有raid上增加磁盘,并相应并扩展逻辑磁盘容量。3、扩展分区:Ubuntu系统上根据逻辑磁盘容量扩展/home分区空间。

很简单一个需求,之前也处理过类似的需求,可是在没想到这次在调整RAID过程中,发现这个HP服务器的有一个问题。

什么问题呢?往下看....

因为5台服务器有的已在应用,为了对业务部门影响最小,我先找一台轻负载的服务器测试,主要目的:在测试期间需要计算此操作的时间(此操作必须下线操作需要告知用户业务中断时间),并有效判断此调整的风险。

实施步骤:

一、加硬盘:不用多说,热插拔的。

二、Raid调整

1、现有raid上增加磁盘之前的文章介绍过hp dl380 GEN8以后版本,F10均可以自动进入HP SSA界面,即设置raid。于是HP GEN9也可以通过如下界面调整。

2、增加磁盘按如下操作选择逻辑设备,可以看到当前有4块600G磁盘

选择管理驱动器,如下

正常来讲这里会有增加硬盘选项,你只要选择即可,

可是问题来了,没有ADD driver,只有这个“移动驱动器”选项,这根本就不是我想要的。

我想要的添加磁盘选项为什么没有,我记得G7版本都有呀,于是我在这界面里里外外翻了一遍,(心里琢磨可能GEN9太新,可能这功能被隐藏了),当时最先考虑到可能是固件的问题,但无法直连官网更新固件,只能下载HPE SSA启动盘或下载固件升级了~-~哭...

(其实这只是这个固件版本的bug ,升级HP固件就会解决,之前一篇文章曾经说过《安装服务前要做些什么》,其中有一条就是升级固件版本,本次也做过升级因连不上HP官网就略过了,但没想到不升级的固件会没有此功能,不做此加硬盘操作,根本不知道这个问题的存在)

这里多说一句,服务器的固件版本升级和手机升级一样,等一个版本稳定之后在做升级,毕竟稳定高于一切。

有办法解决就好,继续 我采用下载HPE的SSA启动盘,从光盘启动调整Raid调整raid

(看到了,终于看到了,这里正常应该有俩选项,Add drivers,这里只加一块)

配置完毕,看到了如下界面。

OK,此时添加硬盘完毕,剩下的就是等待,操作简单,但raid加硬盘需要转换(后台叫tranforing),处理的过程中,在ilo后台你可以看到他处于降级处理做转换

这个时间很长,很长,很长.......,至少一晚时间。 转换完毕,开始扩展逻辑磁盘(没处理完看不到这个选项哟)

选择,extend logical drivers,扩展至最大。

下一步见到如下,原来的1.6G已扩展至2.1T。

完成后,还是...等待。大概过了2小时,完毕你会看到如下界面,逻辑磁盘已增长至2T.硬件层的扩展操作完毕。

接下来是系统层面对分区调整。

3、因为是ubuntu系统,在分区扩展方面没有windows那么简单(windows直接右键扩展即可)而且此ubuntu还非LVM的分区,就是普通的EXT4分区。只能借助fdisk命令扩展或第三方工具扩展。这里我的建议是用第三方工具GPARTED,图形界面操作相比Fdisk命令行操作操作简单,可控性高。

“Gparted工具调整分区操作步骤”

使用ubuntu LIVE光盘启动,光盘自带gparted工具,(系统本身不带gparted,安装后调整本地/home需要umount等更多的步骤支持)

1)通过live光盘启动后,打开gparted工具,将看到磁盘分区。如下/dev/sda2 是扩展分区,/dev/sda5 swap分区,/dev/sda6 /home分区,另外的unallocated 500多G空间是可用于扩展的磁盘空间。

2)现将swap关闭,如果你不关闭swap,你将无法扩展分区(有机会各位可以试试不关的环境)右键点击 /dev/sda5,选择swapoff即可

3)调整“扩展分区”:目的扩大/dev/sda2整体空间(这里说明一下,当前最大分区不允许超过2T,所以,增加时要控制好增加的最大值)

这里我们调到1.9T

4)按此方法扩展/dev/sda6,也就是扩展home最后扩展完毕界面如下,别忘记点“应用”生效。(就是菜单上的对号)

这个速度会比较快,完毕后,重启进入系统查看分区是否有所增长。

OK,成功!没有影响任何数据的情况下已经/home分区由原来的1.6T扩充至2T。

总结

其实操作不复杂:后续实施时需要注意3点,

1、raid调整时间过长,后续需要在晚间操作。安排好时间。

2、虽然整体操作风险性很低,但还是要建议用户端备份重要性,毕竟操作有风险,运维需谨慎。

3、实施前需要准备好相关工具(HP SSA/ubuntu live光盘)

最后说一句,相比下,windows扩展空间要比这简单多了。如有兴趣请关注我微信工公众号:ithelpyou

在Linux服务器上增加硬盘没那么简单【转】的更多相关文章

  1. Django项目在Linux服务器上部署和躺过的坑

    引言 在各方的推荐下,领导让我在测试环境部署之前开发的测试数据预报平台.那么问题来了,既然要在服务器上部署, 就需要准备: 1.linux服务器配置 2.linux安装python环境搭建与配置 3. ...

  2. 在阿里云Linux服务器上安装MySQL

    申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务器. 操作系统:Red Hat Enterprise Linux Server 5.4 64位. CPU:1核 内存:5 ...

  3. 中文名文件上传到linux服务器上以后文件名会乱码(openoffice)

    1.中文名文件上传后保存在linux服务器上文件名会乱码,但是我们通过SSH直接对服务器上的一个文件进行重命名是可以使用中文的,而且显示出来是正确的,这说明服务器是可以支持中文的. 2.而为什么上传的 ...

  4. linux服务器上没有jar命令

    在linux服务器上用jar命令解压jar包时,提示找不到jar命令. 但是用java -version查看jdk版本,又可以显示出jdk版本. echo $JAVA_HOME查看环境变量路径,找不到 ...

  5. Dell Omsa在Linux服务器上安装部署

    前言 本页详述了在一台Linux(RHEL6.4 x86_64)服务器上部署安装OMSA的通用做法,包括OMSA软件的获取方法和安装步骤. 演示环境: PowerEdge R620, RHEL 6.4 ...

  6. linux服务器上安装mysql

    mysql版本:mysql-5.6.44-linux-glibc2.12-x86_64.tar linux操作系统和版本信息: 1.检查linux服务器上是否已安全mysql [root@localh ...

  7. Linux服务器上监控网络带宽的18个常用命令nload, iftop,iptraf-ng, nethogs, vnstat. nagios,运用Ntop监控网络流量

    Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...

  8. Linux服务器上python2升为python3.6

    如何在在Linux服务器上吧Python2升级为Python3 最近白嫖了一年的服务器,打算在服务器上跑一个Python项目,没想到居然预装的是Python2.7.5.本来是打算把Python2.7. ...

  9. 在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式

    (一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...

随机推荐

  1. XPath相关笔记

    <?xml version="1.0" encoding="utf-8" ?> <employees>   <employee o ...

  2. android 图片加载优化,避免oom问题产生

    1,及时回收bitmap,在activity的onstop()和onDestory()里面调用如下代码进行bitmap的回收: // 先判断是否已经回收 if(bitmap != null & ...

  3. crontab格式使用方式

    第1列分钟1-59第2列小时1-23(0表示子夜)第3列日1-31第4列月1-12第5列星期0-6(0表示星期天)第6列要运行的命令 下面是crontab的格式:分 时 日 月 星期 要运行的命令 这 ...

  4. Python学习笔记_Chapter 6定制数据对象

    1. 有用的BIF a. 判断字符串中是否包含子字符串 if s_a in s_b: b. pop() 描述:从指定的列表位置删除并返回一个数据项. (sarah_name,sarah_dob)=l_ ...

  5. CentOS安装Ruby组件

    ruby安装#安装ruby组件yum install ruby ruby-irb ruby-devel rubygems rpm-build -y#安装Apache服务器yum install htt ...

  6. 7、Struts2实现文件上传和下载

    一.实现单个文件上传 1.创建如下web项目结构 2.在src下的com.action包下创建UploadAction.java package com.action; import java.io. ...

  7. 禁用 VS2010 的 vcpkgsrv.exe 运行

    VS2010经常使用一段时间后巨卡,发现vcpkgsrv.exe这个进程相当占内存,但是结束后又会自己启动,百度之原来是IntelliSense的问题,关闭之即可,设置如下

  8. chapter11_2 Lua链表与队列

    链表 由于table是动态的实体,所以在Lua中实现链表是很方便的.每个节点以一个table来表示,一个“链表”只是节点table中的一个字段. 该字段包含了对其他table的引用.例如,要实现一个基 ...

  9. 字符串长度截取换行/n

    /// <summary>        /// 格式化字符串长度,超出部分显示省略号,区分汉字跟字母.汉字2个字节,字母数字一个字节        /// </summary> ...

  10. 可写的计算监控(Writable computed observables)

    新手可忽略此小节,可写依赖监控属性真的是太advanced了,而且大部分情况下都用不到. 一般情况下,计算监控的值是通过其他监控属性的值计算出来的,因此它是只读的.这个看似很奇怪,我们有什么办法可以让 ...