`

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 文件系统章节,也可以看https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

在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


为了交流方便,附件上传,请大家交流使用,原创文章,转载请注明出处。
1
2
分享到:
评论
1 楼 pengfaliu 2016-02-24  
这块内容还有不完善地方,会不断断更新

相关推荐

    VMware和CentOS6.6的安装

    接着,创建一个新的虚拟磁盘,选择“薄磁盘”以节省磁盘空间。指定磁盘大小,建议至少20GB,以便容纳系统和一些基本应用。确认所有设置无误后,点击“完成”开始创建虚拟机。 虚拟机创建完成后,启动它,插入CentOS...

    CentOS 7 系统安装教程

    - **硬件准备**:确保有一台可用的服务器,以及一张 CentOS-7-x86_64-DVD-1511 安装盘和一个 USB 光驱(如果服务器本身没有配备 DVD 驱动器或者驱动器出现问题时备用)。 - **环境准备**:检查服务器的基本运行状态...

    CentOS6&7安装流程

    ### CentOS 6.x 安装流程详解 #### 进入引导界面 - **启动设备**:将安装介质(通常是CD/DVD或USB)插入服务器或PC,并通过BIOS设置为从该介质启动。 - **加载内核**:系统启动后会加载内核,准备开始安装过程。 ...

    CentOS 7 详情操作常用命令

    - **图形界面安装**:插入安装媒介后,通过键盘上下键选择第一行(图形安装界面)并按回车键开始安装流程。在语言选项中选择“简体中文(中国)”,并在“日期和时间”中选择“亚洲/上海时区”。 - **分区配置**:...

    grub修复(centos6.5环境)

    由于`/boot`分区被删除后,`grub.conf`文件可能已丢失,需要手动创建一个新的`grub.conf`文件。可以通过编辑 `/boot/grub2/grub.cfg` 文件来实现。在该文件中,需要指定内核和初始化RAM磁盘文件的位置,例如: ``` ...

    01.00vmware安装centos6.5教程1

    这样,虚拟机将在启动时识别到ISO文件,如同插入了实际的安装光盘。 启动虚拟机后,你会看到安装启动菜单。这里有多种安装选项,包括安装或升级现有系统、采用基本视频驱动安装、进入系统修复模式、从本地硬盘启动...

    虚拟机centos7安装全过程

    为虚拟机起一个易于识别的名字,并设定安装路径。 配置虚拟机硬件时,需注意CPU和内存的设置。根据物理机的实际配置,合理分配虚拟机的CPU核心和内存。一般建议分配的CPU核心数量乘以每个核心的内核数量不应超过...

    Centos6.9+For+Dell+Server+InstallationV1.0.doc

    接着,我们需要插入CentOS 6.9的安装光盘,系统会自动引导进入安装界面。 在安装界面,选择“Install or upgrade an existing system”选项,然后通过Tab键选择“skip”,以跳过硬件检测,直接进入下一步。点击...

    lvm介绍说明

    2. **跨设备聚合**:通过将多个物理磁盘组合成一个卷组,LVM可以提供比单个硬盘更大的逻辑存储空间。 3. **逻辑分区的独立性**:逻辑卷的位置与其在物理设备上的位置无关,这使得它们可以在卷组内的任何位置进行移动...

    VirtualBox使用手册

    例如,您可以在一台物理机器上同时运行多个不同的操作系统,这在测试新软件、开发跨平台应用或者进行安全实验时非常有用。 - **提高资源利用率**:通过虚拟化技术,可以在单一硬件平台上运行多个操作系统实例,从而...

    学习liunx编程

    - **设备识别**:通过udev规则识别USB设备。 - **数据传输**:读取和写入数据。 **8.7 LED使用** - **GPIO控制**:通过GPIO接口控制LED。 **8.8 蜂鸣器使用** - **驱动程序**:编写驱动程序控制蜂鸣器。 **8.9 ...

    在搭载Perc10 raid卡的 Dell 14G服务器上安装低版本linux

    Redhat引入了新的驱动加载策略,需要将驱动dd到USB闪存盘并将其物理插入服务器。但面对远距离的数据中心,这种方法显然不便。此时,可以通过Dell iDRAC的虚拟软盘功能来加载驱动,将dd.iso重命名为dd.img,然后在...

Global site tag (gtag.js) - Google Analytics