22
0
0
【ECS】新增服务器磁盘框架设计
文章摘要
|
磁盘分区
日志不分独立盘的话可以
logrotate来限制Linux 有标准的目录层级(FHS),所以log不能在/log,须使用默认的/var/log
阿里云 ECS 磁盘挂载与分区实践笔记
记录一次完整的服务器磁盘规划过程:从挂载数据盘、创建 LVM、迁移家目录,到部署 Halo 博客。
为何要分区?
| 场景 | 影响 |
|---|---|
| 用户乱放文件 | 撑爆 /,系统崩溃 💀 |
| 日志暴涨 | 撑爆 /,服务全挂 |
| Docker 镜像堆积 | 撑爆 /,无法拉新镜像 |
| MinIO 存大量数据 | 撑爆 /,服务异常 |
核心风险:所有东西都在一个分区,任何一项写满,整个系统都受影响。
一、环境说明(我于aliyun购买d设备)
| 项目 | 配置 |
|---|---|
| 云服务器 | 阿里云 ECS |
| 系统 | Rocky Linux |
| 系统盘 | 40G(/dev/vda) |
| 数据盘 | 1G(/dev/vdb) |
| 数据盘 | 1G (/dev/vdc) |
| 内存 | 2G |
目标:
- 将数据盘挂载到
/data,所有持久化数据统一存放,系统与数据分离。 - 将数据盘挂载到
/var/log,日志s爆盘重灾区,独立磁盘。
二、磁盘规划
最终目录结构
系统盘 /dev/vda(40G)
├── / 系统
├── /boot 内核
└── /boot/efi UEFI 引导
数据盘 /dev/vdb(1G)
└── /log
└── /var/log 日志(独立 LVM)
数据盘 /dev/vdc(1G)
└── /data
├── /data/home 用户家目录
├── /data/halo Halo 数据
├── /data/mysql MySQL 数据
└── /data/backup 备份
三、创建物理卷,卷组,逻辑卷并挂载
创建物理卷,和卷组
lsblk # 列出磁盘设备 ls block ,注意看还没挂载d磁盘名,例如vdcsudo pvcreate /dev/vdc # 创建物理卷,检验 sudo pvssudo vgcreate vg_data /dev/vdc # 创建卷组,检验 sudo vgs创建逻辑卷,-l 定义大小,-n 定义名称,vg_data s分组名称
sudo lvcreate -l 100%FREE -n lv_data vg_data # -l百分比大小,-L绝对大小 -L 500M/data用xfs,/log用ext4(可扩缩容)
sudo mkfs.xfs /dev/vg_data/lv_data # 格式化sudo mkdir /data # 创建挂载点sudo blkid /dev/vg_data/lv_data # 获取UUIDfstab 表,备份s优良传统
sudo cp /etc/fstab /etc/fstab.bakecho 'UUID=your uuid /data xfs defaults 0 0' | sudo tee -a /etc/fstabsudo mount -a # 挂载df -h # 验证/var/logLV创建方法同上,格式为ext4,挂载d方法有点区别,下面讲。
四、更改家目录
sudo mkdir -p /data/home # 创建挂载点rsync -avx /home/用户名/ /data/home/用户名/ # 同步sudo cp /etc/passwd /etc/passwd.bak # 备份sudo vim /etc/passwd # 找到用户行,把 /home/用户名 改成 /data/home/用户名exit # 退出,重新登录
五、日志盘挂载方法
日志s在不断写入中d,因此新盘挂载上去多些步骤
挂载新 LV 到临时目录
sudo mkdir -p /mnt/newlog sudo mount /dev/vg_log/lv_log /mnt/newlog同步旧日志到新盘(关键!)/var/log/ 末尾的 / 很重要,表示同步目录内容,而不是目录本身。保守起见,建议再同步一次增量。
sudo rsync -avx /var/log/ /mnt/newlog/如果日志写入频繁,可以先停掉日志
sudo systemctl stop rsyslog sudo systemctl stop systemd-journald sudo rsync -avx /var/log/ /mnt/newlog/sudo blkid /dev/vg_log/lv_log sudo cp /etc/fstab /etc/fstab.bak echo 'UUID=磁盘uuid /var/log ext4 defaults 0 0' | sudo tee -a /etc/fstabsudo umount /mnt/newlog sudo mount /dev/vg_log/lv_log /var/log df -h | grep /var/log
磁盘扩容
如若扩容磁盘,需等几分钟等aly配置好后,扩容物理卷pv。若是暂未使用pv剩余空间,无须此步。
sudo pvresize /dev/vdcsudo lvextend -r -l +100%FREE /dev/vg_log/lv_log # 别忘了 + 号exit # 退出,重新登录
其他命令
- 查看磁盘分区d其他命令
sudo fdisk -l sudo parted -l
SWAP(交换内存)
##
# 1. 创建 2G 的交换文件
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
# 2. 设置安全权限(只有 root 能读写)
sudo chmod 600 /swapfile
# 3. 格式化为 swap
sudo mkswap /swapfile
# 4. 立即启用
sudo swapon /swapfile
# 5. 验证(应该能看到 Swap 那一行有 2.0Gi 左右)
free -h
最后一步:让它开机自动生效。
编辑 /etc/fstab,在末尾加上这一行:
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -h
swapon --show
