Skip to content

Why is the zns device on the VM unavailable after I run the run_zns.sh script #161

@qjyimyy

Description

@qjyimyy

The run_zns.sh is:

#!/bin/bash

# Huaicheng Li huaicheng@vt.edu
# Run FEMU as Zoned-Namespace (ZNS) SSDs

# Image directory
IMGDIR=/home/qiaojiyang/images
# Virtual machine disk image
OSIMGF=$IMGDIR/femu.qcow2

if [[ ! -e "$OSIMGF" ]]; then
echo ""
echo "VM disk image couldn't be found ..."
echo "Please prepare a usable VM image and place it as $OSIMGF"
echo "Once VM disk image is ready, please rerun this script again"
echo ""
exit
fi

SSD_SIZE_MB=4096
NUM_CHANNELS=8
NUM_CHIPS_PER_CHANNEL=4
NUM_PLANES_PER_CHIP=2
NUM_BLOCKS_PER_CHIP=32
# SLC:1 MLC:2 TLC:3 QLC:4
# MLC is not allowed
FLASH_TYPE=4

FEMU_OPTIONS="-device femu"
FEMU_OPTIONS=${FEMU_OPTIONS}",devsz_mb=${SSD_SIZE_MB}"
FEMU_OPTIONS=${FEMU_OPTIONS}",namespaces=1"
FEMU_OPTIONS=${FEMU_OPTIONS}",zns_num_ch=${NUM_CHANNELS}"
FEMU_OPTIONS=${FEMU_OPTIONS}",zns_num_lun=${NUM_CHIPS_PER_CHANNEL}"
FEMU_OPTIONS=${FEMU_OPTIONS}",zns_num_plane=${NUM_PLANES_PER_CHIP}"
FEMU_OPTIONS=${FEMU_OPTIONS}",zns_num_blk=${NUM_BLOCKS_PER_CHIP}"
FEMU_OPTIONS=${FEMU_OPTIONS}",zns_flash_type=${FLASH_TYPE}"
FEMU_OPTIONS=${FEMU_OPTIONS}",femu_mode=3"

sudo ./qemu-system-x86_64
-name "FEMU-ZNSSD-VM"
-enable-kvm
-cpu host
-smp 4
-m 4G
-device virtio-scsi-pci,id=scsi0
-device scsi-hd,drive=hd0
-drive file=$OSIMGF,if=none,aio=native,cache=none,format=qcow2,id=hd0
${FEMU_OPTIONS}
-net user,hostfwd=tcp::8081-:22
-net nic,model=virtio
-nographic
-qmp unix:./qmp-sock,server,nowait 2>&1 | tee log

when I start VM, use:
sudo nvme list
I get:
Node SN Model Namespace Usage Format FW Rev


/dev/nvme0n1 vZNSSD0 FEMU ZMS-SSD Controller [by Misao] 1 4.29 GB / 4.29 GB 512 B + 0 B 1.0

When I use smartctl -a /dev/nvme0n1, I get:
=== START OF INFORMATION SECTION ===
Model Number: FEMU ZMS-SSD Controller [by Misao]
Serial Number: vZNSSD0
Firmware Version: 1.0
PCI Vendor ID: 0x1d1d
PCI Vendor Subsystem ID: 0x1af4
IEEE OUI Identifier: 0xb30200
Controller ID: 0
NVMe Version: 1.3
Number of Namespaces: 1
Namespace 1 Size/Capacity: 4,294,967,296 [4.29 GB]
Namespace 1 Formatted LBA Size: 512
Local Time is: Fri Nov 8 08:52:42 2024 UTC
Firmware Updates (0x0f): 7 Slots, Slot 1 R/O
Optional Admin Commands (0x0102): Format Drbl_Bf_Cfg
Optional NVM Commands (0x0004): DS_Mngmt
Log Page Attributes (0x07): S/H_per_NS Cmd_Eff_Lg Ext_Get_Lg
Maximum Data Transfer Size: 1024 Pages
Namespace 1 Features (0x14): Dea/Unw_Error NP_Fields

Supported Power States
St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat
0 + 25.00W - - 0 0 0 0 16 4

Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 0
1 - 1024 0 0
2 - 2048 0 0
3 - 4096 0 0
4 - 8192 0 0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!

  • available spare has fallen below threshold

SMART/Health Information (NVMe Log 0x02)
Critical Warning: 0x01
Temperature: 50 Celsius
Available Spare: 0%
Available Spare Threshold: 20%
Percentage Used: 0%
Data Units Read: 0
Data Units Written: 0
Host Read Commands: 0
Host Write Commands: 0
Controller Busy Time: 0
Power Cycles: 0
Power On Hours: 0
Unsafe Shutdowns: 0
Media and Data Integrity Errors: 0
Error Information Log Entries: 0

Error Information (NVMe Log 0x01, 4 of 4 entries)
No Errors Logged

The results were the same whether I used the official image or made my own

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions