56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# seastar-in-kvm
|
|
Create a VM for Seastar development environment
|
|
|
|
# Why we need this
|
|
SeaStar scores muximum performance with DPDK, but it cannot live with existing NIC driver/Linux kernel network stack.
|
|
Also it directly accesses NIC device, it's bit hard to try it on remote node.
|
|
|
|
seastar-in-kvm offers Fedora VM with SeaStar + DPDK without setup, it's easiest way to begin SeaStar application development.
|
|
|
|
### Prerequire
|
|
|
|
On Fedora 21:
|
|
```
|
|
yum install @virtualization
|
|
systemctl enable libvirtd
|
|
systemctl start libvirtd
|
|
yum install libguestfs-tools-c virt-install
|
|
```
|
|
|
|
### How to build & run
|
|
```
|
|
./build.sh
|
|
./register.sh
|
|
virsh start seastar-dev && virsh console seastar-dev
|
|
(Try login as 'seastar' after firstboot.sh finished, Fedora will ask new password for the user)
|
|
```
|
|
|
|
### Usage of the VM
|
|
|
|
Wait until finish running setup script on first startup.
|
|
Then login as 'seastar', login prompt will ask for entering new password.
|
|
|
|
After login to seastar, initialize DPDK module by following instruction:
|
|
```
|
|
sudo su - # entering root user
|
|
resize # extend console to actual terminal window size
|
|
export TERM=xterm-256color # set terminal type
|
|
cd ~/dpdk
|
|
./tools/setup.sh
|
|
|
|
# input numbers by following order:
|
|
(type 9 to re-compile DPDK)
|
|
(type 12 to insert IGB UIO module)
|
|
(type 15, then input "64" to setup hugepage mappings)
|
|
(type 18, then input PCI device id something like "0000:xx:yy.z",
|
|
which is shown at 'Network devices using DPDK-compatible driver')
|
|
(type 30 to exit)
|
|
|
|
cd ~/seastar
|
|
# httpd example
|
|
env LD_LIBRARY_PATH=~/dpdk/x86_64-native-linuxapp-gcc/lib/ \
|
|
./build/release/apps/httpd/httpd --network-stack native --dpdk-pmd --csum-offload off
|
|
```
|
|
|
|
|