1. RAID (冗余磁盘阵列)

RAID(Redundant Arrays of Inexpensive Disks)是一种将多个硬盘组合以提高性能或数据冗余的技术。

Linux 上的 RAID

在 Linux 上应用 RAID,有软件 RAID 和硬件 RAID 之分。通常,硬件 RAID 会被视作 SCSI 设备。

RAID 各个等级:

  • RAID 0 (条带化)

    • 多个硬盘组合成一个大磁盘,没有备份,提供较好的性能但没有容灾能力。
    • 示例:三台 100GB 硬盘组成一个 300GB 的 RAID 0。
  • RAID 1 (镜像)

    • 多台硬盘写入相同数据,提供冗余备份。
    • 示例:三个 100GB 硬盘组成一个 100GB 的 RAID 1。
  • RAID 4

    • 至少需要 3 台硬盘,其中一台用作备份分区。性能瓶颈在于备份分区。
    • 示例:三个 100GB 硬盘组成一个 200GB 的 RAID 4。
  • RAID 5

    • 使用分布式备份技术,性能较 RAID 4 好,且不需要专门的备份硬盘。
    • 示例:三个 100GB 硬盘组成一个 200GB 的 RAID 5。
  • 其他 RAID 等级:

    • RAID LINEAR:类似 RAID 0。
    • RAID 0+1 (RAID01):RAID 0 组成的 RAID 1。
    • RAID 10 (RAID+0):RAID 1 组成的 RAID 0。
    • RAID 6:比 RAID 5 多一台备份区。

mdadm 命令控制 RAID 阵列

mdadm [option] [设备名]

常用选项:

选项 描述
-C, --create 创建 RAID 阵列并生成相关设备
-a 自动生成必要的设备文件
-c 指定 Chunk 大小
-l, --level 指定 RAID 级别
-n, --raid-devices 指定 RAID 阵列中的设备数量
-x, --spare-devices 指定备用设备数量
--manage 管理 RAID 阵列
-a, --add 添加设备
-r, --remove 删除设备
-f, --fail 标记设备为失效
--query 查询 RAID 状态
--detail 查看 RAID 详细状态
--stop 停止指定的 RAID 阵列
--stop --scan 停止所有 RAID 阵列

2. LVM (逻辑卷管理)

LVM 是 Linux 下的一种磁盘管理工具,可以灵活地管理硬盘、分区和逻辑卷。

LVM 结构:

  1. PV (Physical Volume):一个硬盘或一个分区作为物理空间。
  2. PE (Physical Extent):PV 组成 PE。
  3. VG (Volume Group):PE 组成 VG。
  4. LV (Logical Volume):VG 内的 PE 分配为 LV。

创建 LVM:

  1. 准备 LVM 用的分区:

    1
    2
    fdisk /dev/sda
    fdisk /dev/sdb
  2. 初始化 PV:

    1
    pvcreate /dev/sda1 /dev/sdb1
  3. 创建 VG:

    1
    vgcreate testvg /dev/sda1 /dev/sdb1
  4. 创建 LV:

    1
    lvcreate -L 1G -n lv01 testvg
  5. 创建文件系统并挂载:

    1
    2
    mke2fs -j /dev/testvg/lv01
    mount /dev/testvg/lv01 /mnt

管理 LVM:

命令 说明
pvdisplay 显示物理 PV 信息
pvscan 显示 PV 状态
pvmove 移动 PV 中的 PE
pvremove 删除 PV
vgextend 扩展 VG
vgreduce 缩小 VG
vgdisplay 显示 VG 详情
lvdisplay 显示 LV 详情
lvextend 扩展 LV
lvreduce 缩小 LV
lvremove 删除 LV
lvcreate -s 创建快照

3. 访问记忆装置

设备文件说明:

设备文件 说明
/dev/hda IDE 主硬盘
/dev/hdb IDE 从硬盘
/dev/sda 第一个 SCSI/STAT/USB 硬盘
/dev/sdb 第二个 SCSI/STAT/USB 硬盘
/dev/sr0 第一个 SCSI/STAT/USB CD/DVD
/dev/st0 第一个 SCSI 磁带设备

硬盘管理:

Linux 将 IDE 以外的硬盘识别为 SCSI 设备。硬盘的数据传送模式有 PIO(Programmed I/O)和 DMA(Direct Memory Access)模式。通常使用 DMA 模式。

检查 DMA 模式:

1
hdparm -i /dev/sda

硬盘控制:

1
hdparm -d1 /dev/sda  # 启用 DMA 模式

使用 SCSI/STAT/USB:

1
sdparm [option] [设备文件]

4. iSCSI (Internet Small Computer System Interface)

iSCSI 是基于 TCP/IP 的 SCSI 协议,可以使远程存储设备像本地设备一样使用。

iSCSI 配置步骤:

  1. 配置 targets.conf 文件:

    1
    2
    3
    4
    5
    6
    <target iqn.2014.01.com.example.lpic:target0>
    backing-store /dev/sdb2
    initiator-address 192.168.11.2
    initiator-address 192.168.11.4
    incominguser centuser password
    </target>
  2. 启动 iSCSI target 服务:

    1
    service tgtd start
  3. 使用 tgtadm 命令查看 target 状态:

    1
    tgtadm --mode target --op show
  4. 使用 iscsiadm 从 initiator 查询 target:

    1
    iscsiadm -m discovery -t sendtargets -p 192.168.11.3
  5. 配置认证方式:
    修改 /etc/iscsi/iscid.conf

    1
    2
    3
    node.session.auth.authmethod = CHAP
    node.session.auth.username = centuser
    node.session.auth.password = password
  6. 登录 iSCSI:

    1
    iscsiadm -m node --login

    登录后,使用 cat /proc/partitions 查看 iSCSI 目标是否添加成功。