centos 6 如何动态识别新插入物理磁盘(一)

在运维工作中,我们经常会遇到生产环境服务器磁盘容量不够,我们自然会想到扩容,扩服务器,或其他的方式,但今天讨论的是在单台服务器实现热插拨磁盘,并且无需要重启服务器实现对新插入的磁盘进行格式化。

在接下来的描述中会从三维度考虑实现,一是直接对新插入磁盘作为独立硬盘独立分区使用、二是对新插入磁盘作为LVM扩展使用、三是对新插入磁盘加入现有的raid陈列中,并且扩展阵列组容量。

环境:
os:centos6.5 x86_64
磁盘要求:scsi 类型
编码要求:熟悉shell

一、直接对新插入磁盘作为独立硬盘独立分区使用

在描述方法之前,我想列出关于SCSI硬盘的一点小知识,SCSI最典型的特性就是支持热插拨,一般在总线上挂载8块或16块硬盘。

在操作系统中,与scsi 文件相关的目录和文件如下(注意:并非全部)
# /sys/block directory
# /sys/class/scsi_host/ direcotry
# /proc/scsi/scsi file
补充:如果想了解/sys目录 请查看《深入理解linux内核》第四版 sysfs 文件系统章节,也可以看[url]https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/[/url]

在centos6 操作系统中,管理设备的udev进程,关于udev,我仅建议大家看看/etc/udev/目录组成,了解含义。

写了这么多,如何操作呢?流程如下:

1. 插入SCSI磁盘到服务器
2.执行更新scsi_host执行
echo "- - -" > /sys/class/scsi_host/host0/scan
如果有多个hostx ,可以使用for循环执行即可。
3.使用磁盘工具查看是否新磁盘已经检测到
1)如果硬盘小于2T ,可以使用fdisk
2)如果硬盘大于等于2T 建议直接使用parted
4. 分区格式化
5. 按需要扩展容量
1)使用LVM 扩展
2)加入现在有磁盘阵列
为了大家方便,我附上一个简单脚本,如果有不明白之处,咱们共同探讨,明日描述LVM扩展和加入磁盘阵列。

#!/bin/bash
# author: afa
# description: scan new physical disk and tell linux kernel to know it.
# date: 2016.12.23 12:00
#
#
# for scsi disk and network devices.
# related file
# /sys/block directory
# /sys/class/scsi_host/ direcotry
# /proc/scsi/scsi file

. /etc/profile

scan_file="scan"
host_scan_dir="/sys/class/scsi_host/"

function ScanNewPhysicalDisk()
hosts_devices=$(ls -l $host_scan_dir)
for host_device in $hosts_devices
do
echo "- - -" > $host_scan_dir/$host_device/$scan_file
done
echo "scan success."
echo "please use fdisk or parted which effect from you disk size, more 2T disk, I suggest you to use parted tool"

function ScanNetworkDevice()
start_udev
echo "find out and check it"

function AddSingleDevice()
local scsi_device_id=$1
local channel_id=$2
local id=$3
local lun=${a:-0}
echo "scsi add-single-device $scsi_device_id $channel_id $id $lun" > /proc/scsi/scsi

function RemoveSingleDevice()
local scsi_device_id=$1
local channel_id=$2
local id=$3
local lun=${a:-0}
echo "scsi remove-single-device $scsi_device_id $channel_id $id $lun" > /proc/scsi/scsi

function main()
if [[ "$1" == "scan" ]]:then
ScanNewPhysicalDisk


为了交流方便,附件上传,请大家交流使用,原创文章,转载请注明出处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值