hello, i am new to lxc, i have created a lxc container on fedora 19 i created a container rootfs of fedora 19 by using yum --installroot=/containers/test1 --releasever=19 install openssh test1.xml file for container test1 <domain type="lxc"> <name>test1</name> <vcpu placement="static">1</vcpu> <cputune> <shares>1024</shares> <period>1000000</period> </cputune> <memtune> <hard_limit unit="M">1024</hard_limit> <soft_limit unit="M">128</soft_limit> <min_guarantee unit="M">64</min_guarantee> </memtune> <blkiotune> <weight>800</weight> </blkiotune> <memory unit="KiB">102400</memory> <os> <type>exe</type> <init>/bin/bash</init> </os> <clock offset="utc"/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/libexec/libvirt_lxc</emulator> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/"/> <target dir="/"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/var"/> <target dir="/var"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/dev"/> <target dir="/dev"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/root"/> <target dir="/root"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/home"/> <target dir="/home"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/opt"/> <target dir="/opt"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/media"/> <target dir="/media"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/bin"/> <target dir="/bin"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/lib64"/> <target dir="/lib64"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/etc"/> <target dir="/etc"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/lib"/> <target dir="/lib"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/run"/> <target dir="/run"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/srv"/> <target dir="/srv"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/sys"/> <target dir="/sys"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/tmp"/> <target dir="/tmp"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/boot"/> <target dir="/boot"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/usr"/> <target dir="/usr"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/mnt"/> <target dir="/mnt"/> </filesystem> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/test1/sbin"/> <target dir="/sbin"/> </filesystem> <interface type="bridge"> <source bridge="br0"/> </interface> <console port="0" type="pty"/> </devices> </domain> the host network files: /etc/sysconfig/network-script/ifcfg-br0 DEVICE="br0" TYPE="Bridge" USERCTL="no" BOOTPROTO="dhcp" ONBOOT="yes" NM_CONTROLLED="no" /etc/sysconfig/network-script/ifcfg-p2p1 DEVICE="p2p1" BOOTPROTO="dhcp" BRIDGE="br0" NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" the fstab of host # # /etc/fstab # Created by anaconda on Fri Jul 26 05:26:08 2013 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=b49ce5dc-afb7-4c8e-9487-c1ed101d9166 / ext4 defaults 1 1 UUID=3dfa07fd-a06b-4a1a-a3fd-4e2f5e0d0e6a /boot ext4 defaults 1 2 UUID=3d1cb255-721a-48d2-b2e9-86f52b5fbec6 swap swap defaults 0 0 none /sys/fs/cgroup cgroup defaults 0 0 when i try to start the container using virsh i get error virsh --connect lxc:// virsh # define /containers/test1/test1.xml Domain test1 defined from /containers/test1/test1.xml virsh # start test1 error: Failed to start domain test1 error: internal error guest failed to start: PATH=/bin:/sbin TERM=linux container=lxc-libvirt container_uuid=05a7239d-f610-4ae9-ad47-4bf47f2f9b54 LIBVIRT_LXC_UUID=05a7239d-f610-4ae9-ad47-4bf47f2f9b54 LIBVIRT_LXC_NAME=test1 /bin/lxc_defaultinit.sh Unable to send container continue message: Broken pipe has anyone face the same problem with fedora 19. can anyone guide me.. Thanks, Aarti Sawant
Daniel P. Berrange
2013-Jul-31 09:33 UTC
Re: [libvirt-users] start lxc container on fedora 19
On Wed, Jul 31, 2013 at 12:46:58PM +0530, Aarti Sawant wrote:> hello, > > i am new to lxc, i have created a lxc container on fedora 19 > i created a container rootfs of fedora 19 by using > yum --installroot=/containers/test1 --releasever=19 install openssh > > test1.xml file for container test1 > <domain type="lxc"> > <name>test1</name> > <vcpu placement="static">1</vcpu> > <cputune> > <shares>1024</shares> > <period>1000000</period> > </cputune> > <memtune> > <hard_limit unit="M">1024</hard_limit> > <soft_limit unit="M">128</soft_limit> > <min_guarantee unit="M">64</min_guarantee> > </memtune> > <blkiotune> > <weight>800</weight> > </blkiotune> > <memory unit="KiB">102400</memory> > <os> > <type>exe</type> > <init>/bin/bash</init> > </os> > <clock offset="utc"/> > <on_poweroff>destroy</on_poweroff> > <on_reboot>restart</on_reboot> > <on_crash>destroy</on_crash> > <devices> > <emulator>/usr/libexec/libvirt_lxc</emulator> > <filesystem accessmode="passthrough" type="mount"> > <source dir="/containers/test1/"/> > <target dir="/"/> > </filesystem>> <filesystem accessmode="passthrough" type="mount"> > <source dir="/containers/test1/var"/> > <target dir="/var"/> > </filesystem>....snip more <filesystem> elements... Why are you adding all these sub-mounts for /var, /dev, etc, etc? You installed the entire OS tree into /containers/test1, so it should be sufficient to just have that first <filesystem> entry for '/'. You'd only want to add extra mounts for /var, etc if the directory on the host came from somewhere outside the /containers/test1 location. NB, also libvirt sets up /dev - you shouldn't try to override it, or you'll loose access to the pre-populate device nodes, which is probably what's causing your failure.> <interface type="bridge"> > <source bridge="br0"/> > </interface> > <console port="0" type="pty"/> > </devices> > </domain>Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
Thanks Daniel for suggestion, i have made changes in my xml script. I am able to set up lxc container on fedora 18 i created a container using yum yum --installroot=/containers/cont1 --releasever=18 install -y httpd openssh, bridge-utils, dhclient cont1.xml <domain type="lxc"> <name>cont1</name> <vcpu placement="static">1</vcpu> <cputune> <shares>1024</shares> <period>1000000</period> </cputune> <memtune> <hard_limit unit="M">256</hard_limit> <soft_limit unit="M">32</soft_limit> <min_guarantee unit="M">64</min_guarantee> </memtune> <blkiotune> <weight>800</weight> </blkiotune> <memory unit="KiB">102400</memory> <os> <type>exe</type> <init>/bin/lxc_defaultinit.sh</init> </os> <clock offset="utc"/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/libexec/libvirt_lxc</emulator> <filesystem accessmode="passthrough" type="mount"> <source dir="/containers/cont1/"/> <target dir="/"/> </filesystem> <interface type="bridge"> <source bridge="br0"/> </interface> <console port="0" type="pty"/> </devices> </domain> Network setting at host /etc/sysconfig/network-script/ifcfg-p2p1 TYPE="Ethernet" DEVICE="p2p1" BOOTPROTO="dhcp" ONBOOT="yes" BRIDGE="br0" NM_CONTROLLED="no" /etc/sysconfig/network-script/ifcfg-br0 DEVICE="br0" TYPE="Bridge" USERCTL="no" ONBOOT="yes" BOOTPROTO="dhcp" NM_CONTROLLED="no" Network setting at Guest /containers/cont1/etc/sysconfig/network-script/ifcfg-eth0 TYPE="Ethernet" DEVICE="eth0" BOOTPROTO="static" ONBOOT="yes" GATEWAY=172.26.126.254 IPADDR=172.26.126.204 at host /etc/fstab tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts defaults 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 none /sys/fs/cgroup cgroup defaults 0 0 at guest /containers/bin/lxc-defaultinit.sh #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib export PS1="[\u@\h \W]\$ " export HOME="/root" mount -t devtmpfs none /dev mount -t devpts none /dev/pts mount -t tmpfs none /dev/shm mount -t sysfs none /sys /etc/init.d/network start exec /bin/bash On Wed, Jul 31, 2013 at 3:03 PM, Daniel P. Berrange <berrange@redhat.com>wrote:> On Wed, Jul 31, 2013 at 12:46:58PM +0530, Aarti Sawant wrote: > > hello, > > > > i am new to lxc, i have created a lxc container on fedora 19 > > i created a container rootfs of fedora 19 by using > > yum --installroot=/containers/test1 --releasever=19 install openssh > > > > test1.xml file for container test1 > > <domain type="lxc"> > > <name>test1</name> > > <vcpu placement="static">1</vcpu> > > <cputune> > > <shares>1024</shares> > > <period>1000000</period> > > </cputune> > > <memtune> > > <hard_limit unit="M">1024</hard_limit> > > <soft_limit unit="M">128</soft_limit> > > <min_guarantee unit="M">64</min_guarantee> > > </memtune> > > <blkiotune> > > <weight>800</weight> > > </blkiotune> > > <memory unit="KiB">102400</memory> > > <os> > > <type>exe</type> > > <init>/bin/bash</init> > > </os> > > <clock offset="utc"/> > > <on_poweroff>destroy</on_poweroff> > > <on_reboot>restart</on_reboot> > > <on_crash>destroy</on_crash> > > <devices> > > <emulator>/usr/libexec/libvirt_lxc</emulator> > > <filesystem accessmode="passthrough" type="mount"> > > <source dir="/containers/test1/"/> > > <target dir="/"/> > > </filesystem> > > > <filesystem accessmode="passthrough" type="mount"> > > <source dir="/containers/test1/var"/> > > <target dir="/var"/> > > </filesystem> > ....snip more <filesystem> elements... > > Why are you adding all these sub-mounts for /var, /dev, etc, etc? > > You installed the entire OS tree into /containers/test1, so it > should be sufficient to just have that first <filesystem> > entry for '/'. You'd only want to add extra mounts for > /var, etc if the directory on the host came from somewhere > outside the /containers/test1 location. > > NB, also libvirt sets up /dev - you shouldn't try to > override it, or you'll loose access to the pre-populate > device nodes, which is probably what's causing your > failure. > > > <interface type="bridge"> > > <source bridge="br0"/> > > </interface> > > <console port="0" type="pty"/> > > </devices> > > </domain> > > Daniel > -- > |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/:| > |: http://libvirt.org -o- http://virt-manager.org:| > |: http://autobuild.org -o- http://search.cpan.org/~danberr/:| > |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc:| >