рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдмрд┐рдпрди + рдПрдХреНрд╕рдПрди 4.1.1 рд╣реИ, рдЖрдкрдХреЛ рд╡рд╣рд╛рдВ рдлреНрд░реАрдмреАрдПрд╕рдбреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрджрд░реНрдн, FreeBSD 8.0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, PV рдореЛрдб рдореЗрдВ Xen рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ HVM рдореЛрдб рдЙрдкрд▓рдмреНрдз рдерд╛ рдФрд░ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреАрд╡реА рдореЛрдб рдореЗрдВ рдХреЗрд╡рд▓ i386 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Xen рдкрд░ FreeBSD рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ 2 рддрд░реАрдХреЗ рд╣реИрдВ:
- рдПрдХ рдФрд░ FreeBSD рдкрд░ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЗрдореЗрдЬ рдмрдирд╛рдирд╛ рдФрд░ рдЗрд╕реЗ Xen рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдирд╛
- рдПрдЪрд╡реАрдПрдо рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдмрд╛рдж рдореЗрдВ рдкреАрд╡реА рдореЗрдВ рдкреНрд░рд╡рд╛рд╕
рдЪреВрдБрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ FreeBSD рдкрд░ рдПрдХ рдФрд░ рдорд╢реАрди рд╣реИ рдЬреЛ рдПрдХ рдЕрдЪреНрдЫреЗ рдЕрдкрд▓реЛрдб рдХреЗ рд╕рд╛рде рд╣реИ, рдореИрдВрдиреЗ 2 рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдЯреНрд░реЗрдирд┐рдВрдЧ
рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
- рдЕрдиреБрдХреВрд▓рд┐рдд dom0
- рдЖрдИрдПрд╕рдУ рдЗрдВрд╕реНрдЯреЙрд▓рд░ рдЫрд╡рд┐ (FreeBSD 8.2 рдХреЛ рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП)
- VNC рдХреНрд▓рд╛рдЗрдВрдЯ
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ Mac OS X рд╣реИ: рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ VNC рдХреНрд▓рд╛рдЗрдВрдЯ TightVNC рдЬрд╛рд╡рд╛ рд╡реНрдпреВрдЕрд░ рд╣реИредXm рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:
kernel = "hvmloader" builder='hvm' memory = 256 name = "FreeBSD-Dev" vif = [ 'type=ioemu' ] disk = [ 'phy:/dev/tank/freebsd--disk,ioemu:hda,w', 'file:/root/FreeBSD-9.0-BETA2-i386-dvd1.iso,hdc:cdrom,r' ] device_model = 'qemu-dm' boot="cd" vnc=1 vnclisten="0.0.0.0" vncpasswd='freebsdinstall' serial='pty'
рд╕реНрдерд╛рдкрдирд╛
рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (xm create /path/to/freebsd.cfg), рд╣рдо VNC рд╕реЗ рдЬреБрдбрд╝реЗ рд░рд╣реЗрдВрдЧреЗред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ VNC рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдбреЛрдореЗрди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдкреЛрд░реНрдЯ 5900 рд╣реЛрдЧрд╛ред рдпрджрд┐ DOM0 рд╕реНрдХреЛрдк рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ (NAT рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП), рддреЛ рдЖрдк рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ ssh рд╕реБрд░рдВрдЧ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп OS рдореЗрдВ, рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
ssh -L 5900:127.0.0.1:5900 xx.xx.xx.xx
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдбреЛрдореЗрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ 127.0.0.1 .900 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ)ред рдбреАрдПрдЪрд╕реАрдкреА рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде, рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк src рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереА - рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ lvm рдЕрдиреБрднрд╛рдЧ рдмрд┐рд▓реНрдХреБрд▓ 20gb рдерд╛, рдФрд░ рдЬрдм рдореИрдВрдиреЗ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдХрд┐ рд╕рднреА 20 рдХреЛ / рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╕рд┐рд╕реНрдЯрдо рдиреЗ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рд▓рд┐рдП 64kb рдорд╛рдВрдЧреА рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ 64kb рдирд╣реАрдВ рдХрдЯреЗред / рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореБрдЭреЗ рдЬрдЧрд╣ рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реАред рдбрд┐рд╕реНрдХреЛ рдХреЗ рдирд╛рдо рдмреЛрд▓рдирд╛: hda -> ad0, sda -> da0ред
рдХреЛрд░ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛
PV рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FreeBSD рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд░реНрдиреЗрд▓ рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
cd /sys/i386/conf/ config XEN cd ../compile/XEN ; make cleandepend && make depend && make && make install
рдЕрдм рд╣рдореЗрдВ рдХрд░реНрдиреЗрд▓ рдХреЛ DOMU рд╕реЗ DOM0 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
scp /boot/kernel/kernel user@ip:/path
Xm рдХрдВрд╕реЛрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЛрдореЗрди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ / etc / ttys рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
... xc0 "/usr/libexec/getty Pc" vt100 on secure ttyv0 "/usr/libexec/getty Pc" xterm on secure ttyv1 "/usr/libexec/getty Pc" xterm on secure ttyv2 "/usr/libexec/getty Pc" xterm on secure </p>
рдореИрдВ ttyv1 рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЖрдк HVM рдореЛрдб рдореЗрдВ рдмреВрдЯ рдХрд░ рд╕рдХреЗрдВ, Alt + F1 рджрдмрд╛рдПрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВред
рдкреАрд╡реА рд╢реБрд░реВ
рдкреАрд╡реА рдХреЗ рд▓рд┐рдП freebsd.cfg:
kernel = "/etc/xen/freebsd/kernel" memory = 256 name = "FreeBSD0" vif = [ '' ] disk = [ 'phy:/dev/tank/freebsd--disk,ioemu:hda,w' ] extra = "boot_verbose=1" extra += ",vfs.root.mountfrom=ufs:/dev/ad0p2" extra += ",kern.hz=100" pae=1
рдЕрдм рд╣рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрдЕрдк рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХреЛ xn0 рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, rl0 рдирд╣реАрдВред рд╕рдм рдХреБрдЫ, рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдкреБрдирд╢реНрдЪ
рдХреГрдкрдпрд╛ рдкреАрдПрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреЗрдВред
рдпреБрдкреАрдбреАред
рдбрд┐рд╕реНрдХ рдХреА рдЧрддрд┐:
%time dd if=/dev/zero bs=1024k of=test count=1024 1024+0 records in 1024+0 records out 1073741824 bytes transferred in 10.364163 secs (103601403 bytes/sec) 0.000u 3.694s 0:10.37 35.5% 25+4753k 6+8216io 0pf+0w %time dd if=test bs=1024k of=/dev/null 1024+0 records in 1024+0 records out 1073741824 bytes transferred in 8.904045 secs (120590340 bytes/sec) 0.000u 2.458s 0:08.97 27.3% 25+4906k 8225+0io 3pf+0w