mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-04 10:24:37 +00:00
runtime-rs: add virtio-blk-mmio
add virtio-blk-mmio option for dragonball Fixes:#5375 Signed-off-by: Zhongtao Hu <zhongtaohu.tim@linux.alibaba.com> Signed-off-by: alex.lyn <alex.lyn@antgroup.com>
This commit is contained in:
@@ -12,7 +12,7 @@ use super::{default, register_hypervisor_plugin};
|
|||||||
use crate::config::default::MAX_DRAGONBALL_VCPUS;
|
use crate::config::default::MAX_DRAGONBALL_VCPUS;
|
||||||
use crate::config::default::MIN_DRAGONBALL_MEMORY_SIZE_MB;
|
use crate::config::default::MIN_DRAGONBALL_MEMORY_SIZE_MB;
|
||||||
use crate::config::hypervisor::{
|
use crate::config::hypervisor::{
|
||||||
VIRTIO_BLK, VIRTIO_BLK_MMIO, VIRTIO_FS, VIRTIO_FS_INLINE, VIRTIO_PMEM,
|
VIRTIO_BLK_MMIO, VIRTIO_BLK_PCI, VIRTIO_FS, VIRTIO_FS_INLINE, VIRTIO_PMEM,
|
||||||
};
|
};
|
||||||
use crate::config::{ConfigPlugin, TomlConfig};
|
use crate::config::{ConfigPlugin, TomlConfig};
|
||||||
use crate::{eother, resolve_path, validate_path};
|
use crate::{eother, resolve_path, validate_path};
|
||||||
@@ -107,7 +107,7 @@ impl ConfigPlugin for DragonballConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if !db.blockdev_info.disable_block_device_use
|
if !db.blockdev_info.disable_block_device_use
|
||||||
&& db.blockdev_info.block_device_driver != VIRTIO_BLK
|
&& db.blockdev_info.block_device_driver != VIRTIO_BLK_PCI
|
||||||
&& db.blockdev_info.block_device_driver != VIRTIO_BLK_MMIO
|
&& db.blockdev_info.block_device_driver != VIRTIO_BLK_MMIO
|
||||||
&& db.blockdev_info.block_device_driver != VIRTIO_PMEM
|
&& db.blockdev_info.block_device_driver != VIRTIO_PMEM
|
||||||
{
|
{
|
||||||
|
@@ -43,8 +43,8 @@ pub use self::qemu::{QemuConfig, HYPERVISOR_NAME_QEMU};
|
|||||||
mod ch;
|
mod ch;
|
||||||
pub use self::ch::{CloudHypervisorConfig, HYPERVISOR_NAME_CH};
|
pub use self::ch::{CloudHypervisorConfig, HYPERVISOR_NAME_CH};
|
||||||
|
|
||||||
const VIRTIO_BLK: &str = "virtio-blk";
|
const VIRTIO_BLK_PCI: &str = "virtio-blk-pci";
|
||||||
const VIRTIO_BLK_MMIO: &str = "virtio-mmio";
|
const VIRTIO_BLK_MMIO: &str = "virtio-blk-mmio";
|
||||||
const VIRTIO_BLK_CCW: &str = "virtio-blk-ccw";
|
const VIRTIO_BLK_CCW: &str = "virtio-blk-ccw";
|
||||||
const VIRTIO_SCSI: &str = "virtio-scsi";
|
const VIRTIO_SCSI: &str = "virtio-scsi";
|
||||||
const VIRTIO_PMEM: &str = "nvdimm";
|
const VIRTIO_PMEM: &str = "nvdimm";
|
||||||
@@ -172,7 +172,7 @@ impl BlockDeviceInfo {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
let l = [
|
let l = [
|
||||||
VIRTIO_BLK,
|
VIRTIO_BLK_PCI,
|
||||||
VIRTIO_BLK_CCW,
|
VIRTIO_BLK_CCW,
|
||||||
VIRTIO_BLK_MMIO,
|
VIRTIO_BLK_MMIO,
|
||||||
VIRTIO_PMEM,
|
VIRTIO_PMEM,
|
||||||
|
@@ -203,7 +203,7 @@ ifneq (,$(DBCMD))
|
|||||||
CONFIGS += $(CONFIG_DB)
|
CONFIGS += $(CONFIG_DB)
|
||||||
# dragonball-specific options (all should be suffixed by "_DB")
|
# dragonball-specific options (all should be suffixed by "_DB")
|
||||||
DEFMAXVCPUS_DB := 1
|
DEFMAXVCPUS_DB := 1
|
||||||
DEFBLOCKSTORAGEDRIVER_DB := virtio-blk
|
DEFBLOCKSTORAGEDRIVER_DB := virtio-blk-mmio
|
||||||
DEFNETWORKMODEL_DB := tcfilter
|
DEFNETWORKMODEL_DB := tcfilter
|
||||||
KERNELPARAMS = console=ttyS1 agent.log_vport=1025
|
KERNELPARAMS = console=ttyS1 agent.log_vport=1025
|
||||||
KERNELTYPE_DB = uncompressed
|
KERNELTYPE_DB = uncompressed
|
||||||
|
@@ -8,6 +8,7 @@ use super::vmm_instance::VmmInstance;
|
|||||||
use crate::{
|
use crate::{
|
||||||
device::DeviceType, hypervisor_persist::HypervisorState, kernel_param::KernelParams, VmmState,
|
device::DeviceType, hypervisor_persist::HypervisorState, kernel_param::KernelParams, VmmState,
|
||||||
DEV_HUGEPAGES, HUGETLBFS, HYPERVISOR_DRAGONBALL, SHMEM, VM_ROOTFS_DRIVER_BLK,
|
DEV_HUGEPAGES, HUGETLBFS, HYPERVISOR_DRAGONBALL, SHMEM, VM_ROOTFS_DRIVER_BLK,
|
||||||
|
VM_ROOTFS_DRIVER_MMIO,
|
||||||
};
|
};
|
||||||
use anyhow::{anyhow, Context, Result};
|
use anyhow::{anyhow, Context, Result};
|
||||||
use async_trait::async_trait;
|
use async_trait::async_trait;
|
||||||
@@ -265,7 +266,7 @@ impl DragonballInner {
|
|||||||
.get_resource(path, DRAGONBALL_ROOT_FS)
|
.get_resource(path, DRAGONBALL_ROOT_FS)
|
||||||
.context("get resource")?;
|
.context("get resource")?;
|
||||||
|
|
||||||
if driver == VM_ROOTFS_DRIVER_BLK {
|
if driver == VM_ROOTFS_DRIVER_BLK || driver == VM_ROOTFS_DRIVER_MMIO {
|
||||||
let blk_cfg = BlockDeviceConfigInfo {
|
let blk_cfg = BlockDeviceConfigInfo {
|
||||||
path_on_host: PathBuf::from(jail_drive),
|
path_on_host: PathBuf::from(jail_drive),
|
||||||
drive_id: DRAGONBALL_ROOT_FS.to_string(),
|
drive_id: DRAGONBALL_ROOT_FS.to_string(),
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
use anyhow::{anyhow, Result};
|
use anyhow::{anyhow, Result};
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
VM_ROOTFS_DRIVER_BLK, VM_ROOTFS_DRIVER_PMEM, VM_ROOTFS_FILESYSTEM_EROFS,
|
VM_ROOTFS_DRIVER_BLK, VM_ROOTFS_DRIVER_MMIO, VM_ROOTFS_DRIVER_PMEM, VM_ROOTFS_FILESYSTEM_EROFS,
|
||||||
VM_ROOTFS_FILESYSTEM_EXT4, VM_ROOTFS_FILESYSTEM_XFS, VM_ROOTFS_ROOT_BLK, VM_ROOTFS_ROOT_PMEM,
|
VM_ROOTFS_FILESYSTEM_EXT4, VM_ROOTFS_FILESYSTEM_XFS, VM_ROOTFS_ROOT_BLK, VM_ROOTFS_ROOT_PMEM,
|
||||||
};
|
};
|
||||||
use kata_types::config::LOG_VPORT_OPTION;
|
use kata_types::config::LOG_VPORT_OPTION;
|
||||||
@@ -91,7 +91,7 @@ impl KernelParams {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VM_ROOTFS_DRIVER_BLK => {
|
VM_ROOTFS_DRIVER_BLK | VM_ROOTFS_DRIVER_MMIO => {
|
||||||
params.push(Param::new("root", VM_ROOTFS_ROOT_BLK));
|
params.push(Param::new("root", VM_ROOTFS_ROOT_BLK));
|
||||||
match rootfs_type {
|
match rootfs_type {
|
||||||
VM_ROOTFS_FILESYSTEM_EXT4 | VM_ROOTFS_FILESYSTEM_XFS => {
|
VM_ROOTFS_FILESYSTEM_EXT4 | VM_ROOTFS_FILESYSTEM_XFS => {
|
||||||
|
@@ -32,8 +32,9 @@ use kata_types::config::hypervisor::Hypervisor as HypervisorConfig;
|
|||||||
pub use kata_types::config::hypervisor::HYPERVISOR_NAME_CH;
|
pub use kata_types::config::hypervisor::HYPERVISOR_NAME_CH;
|
||||||
|
|
||||||
// Config which driver to use as vm root dev
|
// Config which driver to use as vm root dev
|
||||||
const VM_ROOTFS_DRIVER_BLK: &str = "virtio-blk";
|
const VM_ROOTFS_DRIVER_BLK: &str = "virtio-blk-pci";
|
||||||
const VM_ROOTFS_DRIVER_PMEM: &str = "virtio-pmem";
|
const VM_ROOTFS_DRIVER_PMEM: &str = "virtio-pmem";
|
||||||
|
const VM_ROOTFS_DRIVER_MMIO: &str = "virtio-blk-mmio";
|
||||||
|
|
||||||
//Configure the root corresponding to the driver
|
//Configure the root corresponding to the driver
|
||||||
const VM_ROOTFS_ROOT_BLK: &str = "/dev/vda1";
|
const VM_ROOTFS_ROOT_BLK: &str = "/dev/vda1";
|
||||||
|
Reference in New Issue
Block a user