---
title: 磁盘配置
description: "在Hadoop类环境中，基本为单盘做数据盘，因此存在两种选项：JBOD和单盘RAID 0。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/ecosystemEnable/Hive/topic_0226837116.html
sourcePath: /source/zh/kunpengbds/ecosystemEnable/Hive/topic_0226837116.html
indexId: 10796898cd2c0579b186e5dacaf6f8ad7eb4dbc025de85e34e38ad44773f968564
---
# 磁盘配置

#### 磁盘规划

在Hadoop类环境中，基本为单盘做数据盘，因此存在两种选项：JBOD和单盘RAID 0。

环境上若使用的是LSI 3108/3408/3508系列RAID控制卡，推荐组建单盘RAID 0，充分利用RAID控制卡的Cache（LSI 3508卡为2GB），提高读写速率。


#### Cache策略

使用storcli工具修改RAID组的Cache设置，Read Policy设置为Read Ahead，使用RAID控制卡的Cache做预读；Write Policy设置为Write Back，使用RAID控制卡的Cache做回写，而不是Write Through透写；IO Policy设置为Cached IO，使用RAID控制卡的Cache缓存IO。

在实测中，RAWBD与RAWBC之间会有3%～5%的端到端性能差异，使用RAWBC（无超级电容）/RWBC（有超级电容）性能更佳。

配置命令如下：

```
./storcli /c0/vx set rdcache=ra
./storcli /c0/vx set wrcache=WB/AWB
./storcli /c0/vx set iopolicy=Cached
```

./storcli /c0/vx set wrcache=WB/AWB命令中的WB/AWB取决于RAID控制卡是否有超级电容，无超级电容使用AWB。


#### 块设备配置

主要涉及scheduler、sector_size、read_ahead_kb配置。

- 根据实测，scheduler应使用deadline性能最优。
  1 cat /sys/block/sdx/queue/scheduler

- 块设备的sector_size应与物理盘的扇区大小进行匹配。可通过hw_sector_size、max_hw_sectors_kb、max_sectors_kb三者进行匹配，前两个是从硬件中读取出来的值，第三个是内核块设备的聚合最大块大小，推荐与硬件保持一致，即后两者参数保证一致。

  1. 查看三者参数。
    1 2 3 cat /sys/block/sdx/queue/hw_sector_size cat /sys/block/sdx/queue/max_hw_sectors_kb cat /sys/block/sdx/queue/max_sectors_kb

  2. 修改参数并查看是否修改成功。
- 块设备的预读推荐设置为4MB，读性能更佳，默认值一般为128KB。

  1. 查看预读设置值。
    1 /sbin/blockdev --getra /dev/sdb

  2. 设置并检验。
    1 /sbin/blockdev --setra 4096 /dev/sdb
