tcler's blog --- 其实我是一个程序员
Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious.

Netapp ONTAP simulator on libvirt/KVM

This solution has been verified on Fedora-{32..36}, RHEL-9.{0..1}, RHEL-8.{2..7} and RHEL-7.{8..9}

0. HOST machine requires:

Host OS: As mentioned above, recommend to use latest Fedora or RHEL/CentOS (Fedora-32, RHEL-8.2.0/CentOS-8.2.0 for now:07/2020)
Ram size: >= 16G for two node simulator; and >= 8G for single node simulator
Disk size: >= 400G for two node simulator; and >= 200G for single node simulator

1. download ONTAP simulator image and license file

# download url: https://mysupport.netapp.com/site/tools/tool-eula/simulate-ontap
# note1: need log in to the NetApp Support Site at http://mysupport-beta.netapp.com/ before download
         (Sorry, I can’t leak my account password here, because there is a legal risk)
# note2: please also download the licenses file besides simulator image file, you might need licenses to enable some features

[yjh@ws ONTAP-Simulator]$ ls
CMode_licenses_9.7.txt  Simulate_ONTAP_97_Installation_and_Setup_Guide.pdf  Simulate_ONTAP_97_Quick_Start_Guide.pdf  vsim-netapp-DOT9.7-cm_nodar.ova
[yjh@ws ~]$ lsb_release -sir
Fedora 33

#update(2022-08-08): now latest Netapp Simulator version is 9.11.1

2. untar the ova file and convert the vmdk files to qcow2 format

[yjh@ws ONTAP-Simulator]$ tar vxf vsim-netapp-DOT9.7-cm_nodar.ova
[yjh@ws ONTAP-Simulator]$ for i in {1..4}; do qemu-img convert -f vmdk -O qcow2 vsim-NetAppDOT-simulate-disk${i}.vmdk vsim-NetAppDOT-simulate-disk${i}.qcow2; done

3. install kiss-vm from kiss-vm-ns

[yjh@ws ~]$ git clone https://github.com/tcler/kiss-vm-ns; sudo make -C kiss-vm-ns; sudo vm prepare

#tips 0: if you are non-root user, open new terminal and continue
#tips 1: now kiss-vm only support Fedora-29|CentOS-7|RHEL-7 and later; will support debian in future.
#        ^^^ Update(2021-04-29): now kiss-vm works on "Debian GNU/Linux"
#        ^^^ Update(2021-04-30): now kiss-vm works on "openSUSE Leap 15.2"

4. create virtual network/switch for cluster internal connect (by using kiss-vm)

[yjh@ws ~]$ vm netcreate netname=ontap-isolate brname=br-ontap subnet=100

5. start ONTAP simulator in KVM (by using kiss-vm)

[yjh@ws ~]$ vm -n ontap-single ONTAP-simulator -i vsim-NetAppDOT-simulate-disk1.qcow2 --bus=ide \
    --disk=vsim-NetAppDOT-simulate-disk{2..4}.qcow2,bus=ide \
    --net ontap-isolate,e1000  --net ontap-isolate,e1000 \
    --net-macvtap=-,e1000 --net-macvtap=-,e1000 \
    --noauto --force --nocloud --osv freebsd11.2 --msize $((6*1024)) --cpus 2,cores=2
    #--qemucpu=Icelake-Server  #<<<-- if get panic (2022-08-08)
: <<COMMENT
#after vm command exit, you will see the vnc port info like:
'''
{VM:INFO} you can try login ontap-single again by using:
  $ vm login ontap-node1          #from host
  $ vncviewer dhcp-12-228.xxx.redhat.com:5905    #from remote
'''
then login the VM through VNC to complete the remaining install/configuration steps.
(Simulator OS does not redirect the configuring prompt to console, so must login through VNC)

#note: in above example, I used macvtap interface as the default node management port(e0c),
 must find those ip addresses that has not been used by lab dhcp server.
 
#note 2: if you get panic while start the VM, try add option '--qemucpu=Icelake-Server' to the 
'vm create' command line (2022-08-08)
COMMENT

ref: trident-ontap-ocp4


Big Update(2020-08-08):

I’ve also automated the installation and configuration process that must be done in VNC session.
see: ontap-simulator-in-kvm project