一、磁盘基础知识
硬盘接口类型
接口类型 | 发展方向 | 应用场景 |
---|---|---|
IDE | SATA I/II/III | 个人PC机 |
SCSI | SAS | 服务器上 |
1、磁盘命名规则
Linux系统中,磁盘设备的命名遵循特定规则:
/dev/sda2
解析:- s = 硬件接口类型 (sata/scsi)
- d = disk (硬盘)
- a = 第1块硬盘 (b, 第二块)
- 2 = 第几个分区
其他常见前缀:
/dev/hd
- IDE硬盘/dev/vd
- 虚拟硬盘
2、分区方式
MBR分区(适用于<2TB磁盘)
- 使用fdisk工具
- 最多支持4个主分区或3个主分区+1个扩展分区(N个逻辑分区)
- 每个扇区512字节
- 组成:
- Bootloader(446字节)
- 分区表(64字节)
- 校验位(2字节)
GPT分区(适用于>2TB磁盘)
- 使用gdisk或parted工具
- 最多支持128个主分区
二、实战步骤
1. 添加新硬盘
首先需要在虚拟机中添加一块新硬盘。添加完成后,需要重启虚拟机使系统识别新硬盘。
2. 查看磁盘信息
# 查看系统中的块设备
lsblk
# 查看分区情况
fdisk -l
# 查看挂载情况
df -h
3. 使用fdisk分区
假设新硬盘为/dev/sdb
:
fdisk /dev/sdb
在交互界面中:
- 输入
n
创建新分区 - 选择
p
创建主分区 - 设置分区号(默认1)
- 设置起始扇区(默认2048)
- 设置分区大小(如+20G)
- 输入
t
修改分区类型为Linux LVM(代码8e) - 输入
w
保存并退出
4. 更新分区表
partprobe /dev/sdb
5. 创建物理卷(PV)
pvcreate /dev/sdb1
6. 创建卷组(VG)
vgcreate vg_mysql /dev/sdb1
7. 创建逻辑卷(LV)
lvcreate -L 15G -n lv_mysql vg_mysql
8. 格式化文件系统
mkfs.xfs /dev/vg_mysql/lv_mysql
9. 挂载逻辑卷
mkdir /mysql_data mount /dev/vg_mysql/lv_mysql /mysql_data
10. 设置开机自动挂载
获取UUID:
blkid /dev/vg_mysql/lv_mysql
编辑/etc/fstab
:
UUID=your-uuid-here /mysql_data xfs defaults 0 0
11. 迁移MySQL数据
- 停止MySQL服务
- 复制数据文件到新位置
- 修改MySQL配置文件指向新位置
- 启动MySQL服务
三、LVM扩展实战
当未来空间不足时,可以轻松扩展:
- 添加新硬盘并分区
- 创建PV:
pvcreate /dev/sdc1
- 扩展VG:
vgextend vg_mysql /dev/sdc1
- 扩展LV:
lvextend -L +10G /dev/vg_mysql/lv_mysql
- 扩展文件系统:
xfs_growfs /mysql_data