Linux服务器增加硬盘操作记录
概述
最近我们实验室的GPU服务器数据空间不够用了,老师让我联系公司来增加硬盘。我这里记录一下对Amax公司生产的GPU服务器增加硬盘的步骤。
机器的参数:
- 操作系统:Ubuntu 14.04
- 显卡: Nvidia Tesla K80
- 机器厂商: Amax
- 是否有RAID: 有
配置RAID
RAID(Redundant Array of Independent Disks),即独立硬盘冗余阵列,是一种管理较大空间硬盘阵列的方法,常见的RAID方式到RAID 0-RAID 6,简单的来讲可以这样理解:
- RAID 0: 数据不做备份操作,每块盘都可以存储数据
- RAID 1: 将一半的磁盘作为镜像磁盘,空间利用率只有50%,但是允许有一半的磁盘坏掉(坏掉后备份盘可以继续使用)
- RAID 5: 使用1块盘作为备份,别的盘可以正常存取数据
关于RAID 各种方式的细节,可以看这里。
因为我们想让数据盘尽可能被充分地利用,所以我们采用RAID 0。
将硬盘插入到插槽后,开机启动服务器,就可以进入RAID的设置。在设置页面中,选择“Configuration Wizard”开始设置。具体的设置内容可以参看这篇博客。
对硬盘分区
设置好RAID后,重启进入系统,查看新加的硬盘。
通过sudo fdisk -l
可以查看所有连接的系统的硬盘,而df -h
则只显示挂载到系统的硬盘,所以查看前者中有而后者中不存在的硬盘,比如/dev/sdf
,就是我们新加的硬盘。
找到新加的硬盘后,我们采用sudo fdisk /dev/sdf
命令来对/dev/sdf硬盘创建分区表,输入该命令后,结果如下:
1 | ~ ᐅ sudo fdisk /dev/sdf |
根据提示,我们输入m,得到如下反馈:
1 | 命令操作 |
可以看到列出了所有可能的选项。我们这里输入n,得到输出:
1 | Partition type: |
因为我们在新加的硬盘上只创建一个分区,而且新加的盘用作数据盘,不会作为启动分区,所以选Primary 分区和extended分区都没关系。从这里开始,我们所有的操作都可以选择默认,即每次都是按Enter
键到下一步。到所有设置到完成后,fdisk命令会创建分区,大概需要等1分钟。
格式化硬盘
创建好分区表后,需要格式化硬盘,将Linux的文件系统应用到硬盘上,硬盘才能存储数据。格式化硬盘采用的是mkfs
命令。
目前Linux常用的文件格式是ext3和ext4,其中ext4是ext3的后续版本,对后者进行了一些改进,例如最大文件变成16TB、最大子目录数高达64000个等。具体的改进请参考这里。使用mkfs命令时,可以使用-t 选项制定文件格式。不指定默认的文件格式是ext2。
所以我们这里的命令是:
1 | sudo mkfs -t ext4 /dev/sdf |
对于弹出的问题,选择y
即可,可以看到会写入inode数等操作,进行格式化。
挂载硬盘
硬盘格式化后,只要挂载到系统就可以正常使用了。接下来的操作就跟插硬盘或U盘到服务器上时的操作一样,先创建一个目录,然后将硬盘挂载到该目录,然后就可以在挂载后的目录里面写入或读出文件了,所有操作都在会在硬盘上进行。具体命令如下:
1 | sudo mkdir /data5 |
注意最后一步需要修改文件夹的权限,否则服务器上的其他用户没有读写的权限。
将挂载信息写入到fstab
如果只执行了挂载操作而不将硬盘的挂载操作写入到/etc/fstab
中,则下次重启的时候,需要手动挂载,而用户对于/data5目录是无法进行读写操作的。所以接下来我们需要将挂载操作命令写入到/etc/fstab
文件中。
fstab命令的写法有两种,一种是采用UUID,如:
1 | UUID=8aeec127-62bd-4e7a-2020-5a5024f27a22 /data1 ext4 defaults 0 0 |
这种格式,其中硬盘对应的UUID号可以通过命令sudo file -sL /dev/sdf
得到。关于fstab命令后面参数的含义,请参见我的另一篇博客。
另外一种格式就是用/dev/sdf
来代替UUID,即一条记录如下:
1 | /dev/sdf /data5 ext4 defaults 0 0 |
添加该记录到/etc/fstab
文件后,下次重启,硬盘也会自动挂载。
至此,我们的任务就算大功告成了,希望对你有所帮助。