数据中心存储架构与Linux磁盘管理

在数据中心底层的LLD(低级设计)规划中,存储架构与网络平面设计同样至关重要。本文将剖析主流的企业级存储形态,并结合Linux系统,演示iSCSI块存储的挂载与持久化配置。

一、数据中心底层存储架构(LLD)

数据中心的存储网络需与业务网络、管理网络(BMC/iBMC)物理隔离,通常使用独立的存储交换机承载流量。

1. 存储形态分类与对比

  • 文件式存储(NAS): 通过 NFS 或 CIFS 协议提供文件级共享,适用于非结构化数据的共享场景。
  • 块式存储(SAN): 提供裸磁盘块(Block)给主机,主机可对其分区格式化,性能极高。
    • FC-SAN: 专用光纤通道,性能最优但成本高。
    • IP-SAN: 基于IP协议的 iSCSI/FCoE 方案,性价比高且易部署。
  • 对象存储(Object Storage): 采用扁平化的“桶(Bucket)”和“对象”结构,通过HTTP协议访问,适用于海量视频、云盘数据。

2. 分布式存储与集中式存储

  • 分布式存储: 利用多台服务器本地硬盘组成虚拟存储池,通过多副本(Replica)机制实现冗余,节省硬件成本但软件许可昂贵(如SmartX超融合),适用于海量数据。
  • 集中式存储: 如华为OceanStor双控双活阵列,在中小规模场景下稳定性与性价比更优。

二、Linux 磁盘分区与管理

在Linux系统中挂载存储设备后,必须进行分区和格式化操作。

1. 分区表结构与限制

  • MBR 分区类型: 硬盘分区分为主分区(最多4个)、扩展分区和逻辑驱动器(编号从5开始,如 /dev/sdb5)。MBR 兼容性优于 GPT,特别是在较老的系统环境中。
  • 命令行分区操作:
    • 使用 fdisk /dev/sdb 进入交互界面。
    • 输入 n 创建新分区,指定大小(如 +20G)。
    • 输入 w 保存并退出。
  • 格式化与挂载:
    • 使用 mkfs.ext4 /dev/sdb1 格式化分区。
    • 创建挂载点 mkdir /mnt/data
    • 临时挂载 mount /dev/sdb1 /mnt/data

三、iSCSI 块存储挂载实战

通过 TrueNAS 等存储系统发布 iSCSI 目标(Target)后,Linux 客户端需配置发起程序(Initiator)进行连接。

1. iSCSI 客户端配置

  1. 安装客户端工具包:yum install iscsi-initiator-utils
  2. 发现 iSCSI 目标:iscsiadm -m discovery -t st -p <存储IP>
  3. 登录目标节点:iscsiadm -m node -T <IQN> -p <存储IP> -l
  4. 此时,系统将识别到新磁盘(如 /dev/sdb),可通过 fdisk -l 查看。

2. Linux 永久挂载配置

为确保服务器重启后挂载不丢失,需配置 /etc/fstab 文件。

  • UUID 挂载: 为避免设备名(如 /dev/sdb1)因插拔顺序改变导致挂载失败,强烈推荐使用 blkid 命令获取分区的 UUID。
  • 网络存储特殊参数: 针对 iSCSI 等依赖网络的存储,必须在挂载选项中增加 _netdev 参数。这能确保系统在启动网络服务之后再进行挂载,避免因网络未就绪导致系统启动卡死。
1
2
# /etc/fstab 示例配置
UUID=12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults,_netdev 0 0

配置完成后,使用 mount -a 检查语法是否有误,确认无误后再执行重启验证。