zoukankan      html  css  js  c++  java
  • FreeBSD_11-系统管理——{Part_a-bhyve}

    ;;

    创建 vm:

    #!/usr/bin/env zsh
    
    bridgeIF=bridge0
    laggIF=lagg0
    tapIF=tap0
    phyIF_0=re0
    phyIF_1=em0
    
    isoPath=../ISOs/ubuntu.iso
    volPath=/dev/zvol/zdata/ubuntu
    
    vmName=ubuntu
    cpuNum=4
    memSize=4096M
    volSize=200G
    
    kldload vmm 
    kldload if_tap
    kldload if_lagg
    kldload if_bridge
    
    sysctl net.link.tap.uponopen=1
    
    addr=192.168.0.254/24
    router=192.168.0.1
    
    for x in $phyIF_0 $phyIF_1
    do
        ifconfig $x inet delete
        ifconfig $x inet6 delete
    done
    
    for x in $laggIF $tapIF $bridgeIF
    do
        ifconfig $x destroy
    done
    
    ifconfig lagg0 create
    # Avaliable Mode: lacp/roundrobin/failover/broadcast 
    ifconfig lagg0 laggproto failover laggport $phyIF_0 laggport $phyIF_1
    # Make sense for roundrobin only
    #ifconfig lagg0 rr_limit 1000
    
    ifconfig $tapIF create
    ifconfig $bridgeIF create
    ifconfig $bridgeIF addm $laggIF addm $tapIF
    
    ifconfig $bridgeIF inet $addr
    route flush
    route add default $router
    
    for x in $phyIF_0 $phyIF_1 $laggIF $tapIF $bridgeIF
    do
        ifconfig $x up
    done
    
    for x in $laggIF $tapIF $bridgeIF
    do
        ifconfig $x promisc
    done
    
    # Install only
    #zfs create -V $volSize -o volmode=dev zdata/$vmName
    
    bhyvectl --destroy --vm=$vmName
    
    echo "(hd0) $volPath" > device.map
    # Install only
    #echo "(cd0) $isoPath" >> device.map
    
    # Install only
    #grub-bhyve -m ./device.map -r cd0 -M $memSize $vmName
    grub-bhyve -m ./device.map -r hd0,msdos1 -M $memSize $vmName
    
    #grub> linux (hd0,msdos1)/vmlinuz-XXX root=/dev/sdXN
    #grub> initrd (hd0,msdos1)/initramfs-XXX
    #grub> boot
    
    bhyve -AHP 
        -s 0:0,hostbridge 
        -s 1:0,lpc 
        -s 2:0,virtio-net,$tapIF 
        -s 3:0,virtio-blk,$volPath 
        -s 4:0,ahci-cd,$isoPath 
        -c $cpuNum 
        -m $memSize 
        -l com1,stdio 
        $vmName 2>/dev/null &

    管理 vm:

    • ls -al /dev/vmm
    • bhyvectl --destroy --vm=guest_Name

    配置文件:

    • /etc/sysctl.conf
      • net.link.tap.up_on_open=1
    • /boot/loader.conf
      • vmm_load="YES"
      • if_bridge_load="YES"
      • if_tap_load="YES"
    • /etc/rc.conf
      • cloned_interfaces="bridge_Name tap_Name"
      • ifconfig_bridge0="addm if_Name addm tap_Name"
  • 相关阅读:
    [计算机网络] HTTPDNS 协议
    [计算机网络] DNS 协议
    [计算机网络] P2P 协议
    [年中总结]一个骄傲而又自卑的人的内心独白
    [计算机网络] FTP 协议
    [计算机网络]简单聊聊套接字 Socket
    扒一扒自从买了kindle后看的书
    安全学习笔记——缓冲区溢出攻击
    思想感悟
    C#利用服务器实现客户端之间通信
  • 原文地址:https://www.cnblogs.com/hadex/p/6724081.html
Copyright © 2011-2022 走看看