鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

数据盘调优

通过安装并启用SPDK,可以显著提升数据盘的IO性能并降低延迟,进而提升MySQL数据库的性能。

  1. 安装SPDK。
    git clone https://github.com/spdk/spdk -b v21.01.1
    cd spdk
    git submodule update --init
    ./configure --with-shared --enable-debug --disable-tests --disable-unit-tests
    make -j`nproc`
    make -j`nproc` install
    ln -s `pwd`/build/bin/vhost /usr/bin/vhost
    ln -s `pwd`/scripts/rpc.py /usr/bin/rpc
    export LIBRARY_PATH=/usr/local/lib:/home/spdk/dpdk/build-tmp/lib:/home/spdk/dpdk/build/lib:${LIBRARY_PATH}
    export LD_LIBRARY_PATH=/usr/local/lib:/home/spdk/dpdk/build-tmp/lib:/home/spdk/dpdk/build/lib:${LD_LIBRARY_PATH}
  2. 启动vhost进程,并指定用于轮询的CPU编号。例如指定CPU编号8,9,10,11
    vhost -S /var/tmp -m [8,9,10,11] &
    • [8,9,10,11]为用于轮询的CPU编号,可以根据实际需求进行调整。
    • 建议本步骤的绑核与2中的绑核都在同一个NUMA节点上。
  3. 创建块设备和控制器。
    1. 创建一个AIO块设备。
      rpc bdev_aio_create /dev/nvme0n1p5 aio_0 512
      • /dev/nvme0n1p5为卷名,可以是QEMU的img文件或RBD设备等。
      • aio_0为块设备的名称。
      • 512为块大小。
    2. 创建一个vhost blk控制器。
      rpc vhost_create_blk_controller vhost.0 aio_0

      vhost.0为socket文件名称,该命令将生成一个位于“/var/tmp/vhost.0”的socket文件。

  4. 在虚拟机的XML配置文件中添加SPDK数据盘。
    1
    2
    3
    4
    5
    6
    7
        <disk type='vhostuser' device='disk' snapshot='no'>
          <driver name='qemu' type='raw' queues='8'/>
          <source type='unix' path='/var/tmp/vhost.0'>
            <reconnect enabled='yes' timeout='10'/>
          </source>
          <target dev='vdb' bus='virtio'/>
        </disk>
    

    “queues”的值不能超过虚拟机CPU的数量,否则虚拟机将会无法启动。

    至此,SPDK环境部署完成,并可在虚拟机中使用SPDK提供的数据盘。