面试题

·7 分钟阅读·2783 字
📋 目录

存储与虚拟化面试题


裸磁盘写入流程

【题目】 一块裸磁盘需要哪些流程才能写入数据?

【参考答案】 三步流程分区 → 格式化 → 挂载

详细步骤

  1. 分区:使用 fdiskparted 在磁盘上创建分区表

    fdisk /dev/sdb       # MBR 分区
    parted /dev/sdb      # GPT 分区(>2TB 磁盘必选)
  2. 格式化:创建文件系统

    mkfs.ext4 /dev/sdb1    # ext4 文件系统
    mkfs.xfs /dev/sdb1     # XFS 文件系统(推荐大文件)
  3. 挂载:挂载到目录使用

    mount /dev/sdb1 /data
    # 持久化:写入 /etc/fstab
    echo "/dev/sdb1 /data ext4 defaults 0 0" >> /etc/fstab

【延伸追问】

  • MBR 和 GPT 分区表的区别?(MBR ≤2TB、4 主分区;GPT 无限制)
  • 为什么不直接格式化整盘而不分区?

【易错坑点】

  • 不写 /etc/fstab 重启后不会自动挂载
  • MBR 磁盘最大支持 2TB,超过需用 GPT

MBR vs GPT

【题目】 什么是磁盘的分区表,有哪些类型?

【参考答案】 磁盘分区表是记录磁盘分区信息的特殊数据结构,包含分区起始位置、大小、类型等。

两种类型

特性MBRGPT
全称Master Boot RecordGUID Partition Table
最大容量≤ 2TB≥ 9.4ZB(无实际限制)
分区数量4 个主分区 或 3 主 + 1 扩展128 个(Windows 限制)
启动方式BIOS / LegacyUEFI(现代标准)
冗余备份❌ 无(单一点故障)头尾双备份
兼容性广泛(旧系统)现代系统标准

生产建议:2026 年新系统全部使用 GPT + UEFI

【延伸追问】

  • BIOS+GPT 可以启动吗?(可以但需要 GRUB 支持)
  • 如何将 MBR 磁盘转换为 GPT 而不丢失数据?

【易错坑点】

  • GPT 磁盘末尾有备份分区表,删除分区时不要删掉备份
  • Windows 系统从 MBR 启动需要 BIOS 模式,GPT 需要 UEFI 模式

逻辑卷管理(LVM)

【题目】 如何创建一个逻辑卷?

【参考答案】 LVM(Logical Volume Manager) 在物理磁盘和文件系统之间添加逻辑层,实现灵活的存储管理。

创建流程

# 1. 创建物理卷(PV)
pvcreate /dev/sdb1 /dev/sdb2

# 2. 创建卷组(VG)
vgcreate myvg /dev/sdb1 /dev/sdb2

# 3. 创建逻辑卷(LV)
lvcreate -L 10G -n mylv myvg

# 4. 格式化并挂载
mkfs.ext4 /dev/myvg/mylv
mount /dev/myvg/mylv /mnt/data

LVM 优势

功能命令说明
动态扩容lvextend -L +5G /dev/myvg/mylv在线扩展,无需卸载
动态缩容lvreduce -L -5G /dev/myvg/mylv需先缩文件系统,风险高
快照lvcreate -s -n snap -L 1G /dev/myvg/mylv用于备份
迁移pvmove /dev/sdb1在线迁移数据到新磁盘

【延伸追问】

  • LVM 的优缺点?(灵活性提升 vs 性能略微下降)
  • 如何在 LVM 上扩展文件系统?(resize2fsxfs_growfs

【易错坑点】

  • LVM 缩容必须先缩文件系统再缩 LV,顺序反了会损坏数据
  • XFS 文件系统不支持缩容,只能扩容

查看磁盘使用情况

【题目】 如何查看 Linux 系统的磁盘使用情况?

【参考答案】

# 查看文件系统磁盘使用
df -h
# 示例输出:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1        98G   45G   53G  46% /

# 查看目录/文件大小
du -sh /var/log          # 查看目录总大小
du -sh * | sort -rh      # 按大小排序当前目录下所有项目

# 查看磁盘设备
lsblk                    # 查看磁盘和分区
fdisk -l                 # 查看磁盘详情

df 关键字段

字段说明
Size总容量
Used已用空间
Avail可用空间(非 root 用户的实际可用)
Use%使用率
Mounted on挂载点

【延伸追问】

  • df 显示的 Avail + Used ≠ Size,为什么?(预留空间 5%)
  • 磁盘使用率 100% 会导致什么后果?

【易错坑点】

  • du 不统计已删除但仍有进程持有的文件df 显示的空间可能比 du
  • root 用户有 5% 的预留空间,普通用户无法使用

KVM 虚拟化

【题目】 简单介绍 KVM 虚拟化?

【参考答案】 KVM(Kernel-based Virtual Machine) 是一个开源的系统虚拟化模块,将 Linux 内核转变为 Type-1 Hypervisor

核心架构

组件作用
KVM 模块CPU 虚拟化 + 内存虚拟化(硬件辅助)
QEMUIO 虚拟化(磁盘、网络、USB)
libvirt管理 API / 工具集

KVM vs VMware

特性KVMVMware vSphere
许可证开源免费商业收费
底层Linux 内核模块专有 Hypervisor
Linux 支持原生优势一般
管理工具libvirt + virt-managervCenter
生产使用广泛(OpenStack 默认)企业传统选择

【延伸追问】

  • KVM 的三种网络模式(NAT、Bridge、隔离网络)的区别?
  • raw 和 qcow2 磁盘格式的区别?(性能 vs 功能:快照、动态扩容)

【易错坑点】

  • KVM 需要 CPU 硬件虚拟化支持(Intel VT / AMD-V)
  • KVM 本身只做 CPU 和内存虚拟化,IO 虚拟化需要 QEMU 配合

关联文档

  • ../Ceph 分布式存储 — 分布式存储
  • ../../linux/故障排查/服务器坏道诊断与修复 — 磁盘故障排查