马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、场景:系统盘告警,加一块盘救急
线上 Linux 服务器跑久了,固态系统盘动不动就提示空间不足。这时候最有效的办法不是删日志 (那是治标),而是加一块新盘,把不常用的数据整体搬过去。这篇文章把从选型到开机自动挂载的全过程梳理一遍,包含分区表里 2T 这个经典限制。
二、SSD 与 HDD:该怎么选
2.1 结构差异
- HDD(机械硬盘):靠盘片旋转、磁头寻道读写数据,速度受限于机械结构;
- SSD(固态硬盘):纯闪存芯片,没有任何机械部件,读写直接落到芯片上。
2.2 速度差距
同代产品里,SSD 的读写速度比 HDD 快数倍甚至数十倍。日常实测中,普通 SSD 顺序读写在 500MB/s 上下,HDD 大致 100MB/s 出头,随机小文件场景差距还要再放大。
2.3 价格与适用
HDD 单容量价格明显更便宜,适合备份、冷数据归档这类"存得多、读得少"的场景;SSD 贵但快,适合系统和数据库。
2.4 结论
操作系统、数据库、日志 这类高频访问放 SSD;备份文件、历史归档、大体积素材放 HDD。这次给一台盘吃紧的服务器加盘,目标是腾挪不常用的数据,那选 HDD 就对了。
三、HDD 类型与接口
3.1 尺寸类型
- 3.5 英寸:桌面和服务器最常见,容量大、转速一般 5400~7200RPM,这次采购选的就是这一类;
- 2.5 英寸:笔记本主流,也有小服务器和 NAS 用;
- 企业级 HDD:寿命更长、支持 7×24 连续运行,数据中心和阵列设备常用,价格也更高。
服务器预留的硬盘槽位一般兼容 3.5 和 2.5 寸,但下单前最好核对一下机架型号,别买回来插不上。
3.2 接口类型
- SATA(Serial ATA):消费级和企业级通吃,主流是 SATA3.0,理论带宽 6Gbps;
- SAS(Serial Attached SCSI):企业级专用,服务器和数据中心常见,SAS2.0 是 6Gbps,SAS3.0 到 12Gbps。
买之前看一眼背板是 SATA 还是 SAS 接口,接口不匹配装上去点不亮,很容易被当成盘坏了。
四、物理安装
新盘拆封后按尺寸放进槽位,用螺丝固定到位。留意硬盘指示灯亮起来,才说明供电和链路都正常;如果盘灯不亮,先检查背板线和供电,别急着进系统排查。
五、查看系统识别到的磁盘
lsblk
能看到新增的那块盘(本次示例里是 sda,机械硬盘通常以 sd 开头),就说明系统已经认到硬件了。多数服务器支持热插拔,盘灯亮却不显示的话,重启一次一般就能识别。
六、分区:先理解 2T 这道坎
6.1 方式一:fdisk(MBR)
sudo fdisk -l
sudo fdisk /dev/sda
进到交互界面后按提示走:n 新建分区 → p 选主分区 → 起始扇区直接回车用默认 → 结束时 w 保存退出。
但如果盘容量超过 2T,会看到这段提示:
The size of this disk is 7.3 TiB (8001563222016 bytes).
DOS partition table format cannot be used on drives for
volumes larger than 2199023255040 bytes for 512-byte sectors.
Use GUID partition table format (GPT).
意思是 MBR 分区表在 512 字节扇区下最大只能到约 2.2T,继续按老流程走会得到一个只有 2T 的分区。要得到完整容量,必须换 GPT。
6.2 删掉误建分区
如果已经用 fdisk 建了个 2T 的分区,退出来重来:
sudo fdisk /dev/sda
Command (m for help): d
Partition number (1-4): 1
Command (m for help): w
6.3 方式二:gdisk 建 GPT 分区
sudo gdisk /dev/sda
Command (? for help): o # 新建空的 GPT 分区表
Command (? for help): n # 新建分区
Partition index (1-128): 1
First sector (34-15628053167, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-15628053167, default = 15628053167) or {+-}size{KMGTP}: +500G
Hex code or GUID (L to show codes, Enter = 8300): 8300
Command (? for help): w
几点说明:Last sector 那里写 +500G 就是只切 500G,直接回车则把整块盘用满;8300 是 Linux 文件系统的类型码,回车确认即可。执行完再 sudo fdisk -l 就能看到新分区了。
七、格式化分区
分区建好之后必须先格式化才能用。假设新分区是 sda1:
sudo mkfs.ext4 /dev/sda1
正常的话会依次打印 Allocating group tables、Writing inode tables、Creating journal、Writing superblocks and filesystem accounting information 这几行,看到最后一行就成了。业务数据盘建议用 ext4;要 xfs(比如 RHEL/CentOS 系偏好、适合大文件和高并发)就换 mkfs.xfs。
八、挂载并迁移数据
先建个空目录当临时挂载点,再把数据挪过去:
sudo mkdir /mnt/sda1
sudo mount /dev/sda1 /mnt/sda1
注意挂载点最好是新建的空目录,往一个有内容的目录上挂,原来的文件会被暂时遮住。
mv /home/xxx/data /mnt/sda1
数据搬走之后,为了让老路径继续能用、不用改任何程序配置,建一个软链接接回去:
ln -s /mnt/sda1/data /home/xxx/data
九、写入 /etc/fstab 实现开机自动挂载
先查出新分区的 UUID:
sudo blkid
然后把这行加进 /etc/fstab:
sudo vim /etc/fstab
# 新增一行
UUID=ae03686c-xxxx /mnt/sda1 ext4 defaults 0 2
fstab 一行六列,逐个说明:
- UUID:分区的唯一标识,用
blkid 查得到。用 UUID 而不是 /dev/sda1,是因为重启后内核给磁盘分配的设备名可能变(多盘时尤其明显),UUID 不会随顺序变化;
- /mnt/sda1:挂载点目录;
- ext4:文件系统类型;
- defaults:默认挂载选项(包含 rw、suid、dev、exec、async 等);
- 0:dump 备份开关,0 表示不备份;
- 2:fsck 检查顺序。根分区是 1,其他文件系统是 2,0 表示不检查。
写完之后务必先测:执行 sudo mount -a,如果没有报错,说明这条 fstab 是合法可用的,再挑时间重启验证。这一步不能跳,fstab 写错会导致机器重启后进不去系统,比原来盘满的麻烦大得多。
十、踩坑提醒
- 大于 2T 的盘用 fdisk 会得到 2T 分区,记得换 gdisk/parted;
- 挂载点选已存在且有文件的目录,数据会被"藏起来"直到卸载;
- mv 跨文件系统其实是复制+删除,7T 数据要算好时间窗口,最好用
mv 前先测速或分批处理;
- 软链接要记清楚指向哪,日后摘盘卸载,链接失效但老程序不会报错,会造成"文件凭空消失"的错觉;
- fstab 改动后永远先
mount -a 再 reboot。
十一、小结
整套操作就是一条线:选盘 → 装盘看 lsblk 认到 → gdisk 建 GPT 分区 → mkfs.ext4 格式化 → 挂到临时目录 → mv 数据 + ln -s 接回老路径 → 查 UUID 写 fstab → mount -a 验证。这里面真正会让人栽跟头的只有两处:2T 的 MBR 限制,和 fstab 写错导致重启起不来。把这两个点提前想清楚,剩下的就是按步骤执行而已。
qidao123.com企服评测-应用市场 编辑提示 |