部署在数据中心(即IDC)的服务器一般硬盘都支持热插拔,这样在硬盘损坏的情况下,可以不停机快速更换硬盘。依赖专用硬盘阵列卡,如果做的RAID有冗余,更换硬盘可以做到对上层应用无感知。
下面就通过具体案例演示如何上线一块硬盘到数据中心服务器。
场景
服务器型号是Dell R410(仅为方便演示后面操作命令,无打广告之意)
部署Elasticsearch集群,节点需要安装固态硬盘,使用三台服务器组成集群,每台服务器安装一块固态硬盘,因为每个索引有3个主shard和1个副本shard,所以使用RAID 0,这样可以最大限度节省硬盘空间。
操作步骤
1,安装硬盘并配置RAID 0
将硬盘安装到托架并插入选定的服务器后,下面命令查看硬盘ID:
aneirin@host-1:~$sudo omreport storage pdisk controller=0
比如要操作ID为“0:0:2”的硬盘。
aneirin@host-1:~$ sudo omconfig storage controller controller=0 action=createvdisk raid=r0 size=max pdisk=0:0:2
The Create Virtual Disk task was successful but the operating system may not be aware of the new virtual disk.
上面操作完成物理硬盘到逻辑硬盘的转换,在操作系统里面,我们能看到的仅是逻辑硬盘。如果没有上面操作,服务器对新加入的硬盘是没有任何感知的(替换已有RAID内的硬盘除外)
2,硬盘分区
找到待操作的硬盘为“/dev/sdb”
aneirin@host-1:~$ sudo fdisk -l
......
Disk /dev/sdb: 223 GiB, 239444426752 bytes, 467664896 sectors
Disk model: PERC 6/i Adapter
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
硬盘分区,参考下面操作
aneirin@host-1:~$ sudo parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel msdos //使用msdos分区表,根据需要可选用GPT分区表
(parted) unit s //以扇区作为基本操作单元,不是必需的,因为下面使用百分比操作分区大小
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]? ext4
Start? 0%
End? 100% //整个硬盘只分一个分区,最终会是“/dev/sdb1”
(parted) print
Model: DELL PERC 6/i Adapter (scsi)
Disk /dev/sdb: 467664896s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 467664895s 467662848s primary ext4 lba
(parted) align-check
alignment type(min/opt) [optimal]/minimal? optimal
Partition number? 1 //分区1做扇区对齐,在这里仅做展示,可以看到操作前后起始和结束扇区号没变
1 aligned
(parted) print //配置完毕,记得确认下最终状态
Model: DELL PERC 6/i Adapter (scsi)
Disk /dev/sdb: 467664896s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 467664895s 467662848s primary ext4 lba
(parted) quit
Information: You may need to update /etc/fstab.
3,格式化硬盘并挂载
后面的操作就比较简单了
aneirin@host-1:~$ sudo mkfs.ext4 /dev/sdb1 //使用ext4文件系统,格式化硬盘
mke2fs 1.44.5 (15-Dec-2018)
Creating filesystem with 58457856 4k blocks and 14614528 inodes
Filesystem UUID: 5b931601-523e-41d8-84a2-bef82138fc1f
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done
aneirin@host-1:~$ sudo mkdir /var/lib/elasticsearch //创建挂载点
aneirin@host-1:~$ sudo mount /dev/sdb1 /var/lib/elasticsearch //挂载
4,更新“/etc/fstab”
将挂载信息更新到文件“/etc/fstab”末尾,以防服务器重启,原来的挂载失效
/dev/sdb1 /var/lib/elasticsearch ext4 defaults 0 0
写在后面
硬盘分区的命令还有fdisk,如果要操作的硬盘大于2TB,需要使用“parted”,否则可以任意选用。建议使用“parted”,毕竟它是后来者。
希望这篇文章能帮到正在努力的你,欢迎评论关注!