# 管理虚拟磁盘<a name="ZH-CN_TOPIC_0187048016"></a>

## 概述<a name="section1430072817262"></a>

虚拟磁盘类型主要包含virtio-blk、virtio-scsi、vhost-scsi等。virtio-blk模拟的是一种block设备，virtio-scsi和vhost-scsi模拟的是一种scsi设备。

-   virtio-blk：普通系统盘和数据盘可用，该种配置下虚拟磁盘在虚拟机内部呈现为vd\[a-z\]或vd\[a-z\]\[a-z\]。
-   virtio-scsi：普通系统盘和数据盘建议选用，该种配置下虚拟磁盘在虚拟机内部呈现为sd\[a-z\]或sd\[a-z\]\[a-z\]。
-   vhost-scsi：对性能要求高的虚拟磁盘建议选用，该种配置下虚拟磁盘在虚拟机内部呈现为sd\[a-z\]或sd\[a-z\]\[a-z\]。

## 操作步骤<a name="section1065395322715"></a>

虚拟磁盘的配置步骤，请参见"虚拟机配置 > 配置虚拟机设备 > 存储设备"。本节以virtio-scsi磁盘为例，介绍挂载和卸载虚拟磁盘的简单方法。

-   挂载virtio-scsi磁盘：

    使用virsh attach-device命令挂载virtio-scsi虚拟磁盘：

    ```
     # virsh attach-device <VMInstance> <attach-device.xml>
    ```

    上述命令可以为虚拟机在线挂载磁盘，其中磁盘信息由attach-device.xml文件指定。下面是一个attach-device.xml文件的例子：

    ```
    ### attach-device.xml ###
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2' cache='none' io='native'/>
          <source file='/path/to/another/qcow2-file'/>
          <backingStore/>
          <target dev='sdb' bus='scsi'/>
          <address type='drive' controller='0' bus='0' target='1' unit='0'/>
        </disk>
    ```

    通过上述命令挂载的磁盘，在虚拟机关机重启后失效。如果需要为虚拟机持久化挂载虚拟磁盘，需要使用带--config参数的virsh attach-device命令。

-   卸载virtio-scsi磁盘：

    通过在线挂载的磁盘，如果不需要再使用，可以通过virsh detach命令动态卸载：

    ```
     # virsh detach-device <VMInstance> <detach-device.xml>
    ```

    其中，detach-device.xml指定了需要卸载的磁盘的XML信息，与动态挂载时的XML信息保持一致。


