Administrace Unixu Pˇrednᡠska[0] Vojtˇ ech Aschenbrenner
6. ˇríjna 2015
1 / 27
Administrativa • 2/2 Zk + Z • 6 kredit˚ u • d3s.mff.cuni.cz/teaching/unix_administration
Pˇrednᡠska • Úterý, 15:40, S9 • Leo Galamboˇ s
Cviˇ cení • je potˇ reba úˇ cet do unix labu nebo vlastní stroj • Úterý, 10:40, SU1 • Vladimír Matˇ ena <[email protected]>
ˇ tvrtek, 14:00, SU2 • C • Vojtˇ ech Aschenbrenner
2 / 27
Zápoˇ cet/Zkouˇ ska
Zápoˇ cet • • • •
udˇ eluje pˇrísluˇ sný cviˇ cící nutný pro pˇrihlᡠsení ke zkouˇ sce je vyˇ zadována pr˚ ubˇ ez ˇná práce v semestru administrátoˇri mohou dostat zápoˇ cet dˇríve • zpracování dokumentace spravovaného ˇ reˇ sení • rozsah sítˇ e malé firmy • nutno domluvit v ˇ ríjnu s pˇrednᡠsejícím
Zkouˇ ska • nejvýˇ se 1 pˇredtermín (v pˇrípadˇ e zájmu) • právˇ e 3 termíny zkouˇ sky v ˇrádném zkouˇ skovém období
3 / 27
Obsah pˇrednᡠsky
• • • • • • •
virtlab a úvod do virtualizace na OS rodiny UNIX metodika správy UNIXu ˇinnosti základní administrátorské c sít’ování prostˇrední menˇ sí firemní sítˇ e domácí sít’ (PXE + iSCSI, NAS + KVM) konkrétní techniky napadení a ochrany
4 / 27
virtlab
• {bogatyr,gromoboj,navarin,potemkin}
.ms.mff.cuni.cz • Gentoo Linux s podporou KVM (kromˇ e gromoboj) • 64GB /root • 4x2TB disky pˇ ripojené pˇres 2x8Gb/s Fibre Channel
(/virtlab/{1,2,3,4}) • Distribuovaný souborový systém OCFS2 • 4x1Gb/s ethernet (IPMI, internet, –, –)
5 / 27
bogatyr (CPU, MEM) $ cat /proc/cpuinfo [...] processor : 47 vendor_id : GenuineIntel cpu family : 6 model : 46 model name : Intel(R) Xeon(R) CPU stepping : 6 microcode : 0xa cpu MHz : 1995.000 cache size : 18432 KB [...]
E7540
@ 2.00GHz
$ cat /proc/meminfo MemTotal: 132012880 kB [...]
6 / 27
bogatyr (HDD, OCFS2, Multipathing) # blkid /dev/sda1: LABEL="virtlab1" UUID="[...]" TYPE="ocfs2" PARTUUID="539f6534-01" /dev/sdb1: LABEL="virtlab2" UUID="[...]" TYPE="ocfs2" PARTUUID="000ab266-01" /dev/sdg1: LABEL="virtlab3" UUID="[...]" TYPE="ocfs2" PARTUUID="000c7589-01" /dev/sdh1: LABEL="virtlab4" UUID="[...]" TYPE="ocfs2" PARTUUID="000ab49c-01" /dev/sdi1: LABEL="virtlab1" UUID="[...]" TYPE="ocfs2" PARTUUID="539f6534-01" /dev/sdj1: LABEL="virtlab2" UUID="[...]" TYPE="ocfs2" PARTUUID="000ab266-01" /dev/sdm1: LABEL="bogatyr_boot" UUID="[...]" TYPE="ext2" PARTUUID="626e18da-01" /dev/sdm2: LABEL="bogatyr_root" UUID="[...]" TYPE="ext4" PARTUUID="626e18da-02" /dev/sdp1: LABEL="virtlab3" UUID="[...]" TYPE="ocfs2" PARTUUID="000c7589-01" /dev/sdq1: LABEL="virtlab4" UUID="[...]" TYPE="ocfs2" PARTUUID="000ab49c-01" 7 / 27
bogatyr (HDD, OCFS2, Multipathing)
# blkid [...] /dev/mapper/virtlab1: PTUUID="539f6534" PTTYPE="dos" /dev/mapper/virtlab2: PTUUID="000ab266" PTTYPE="dos" /dev/mapper/virtlab3: PTUUID="000c7589" PTTYPE="dos" /dev/mapper/virtlab4: PTUUID="000ab49c" PTTYPE="dos" /dev/mapper/virtlab1p1: LABEL="virtlab1" UUID="[...]" TYPE="ocfs2" PARTUUID="539f6534-01" /dev/mapper/virtlab2p1: LABEL="virtlab2" UUID="[...]" TYPE="ocfs2" PARTUUID="000ab266-01" /dev/mapper/virtlab3p1: LABEL="virtlab3" UUID="[...]" TYPE="ocfs2" PARTUUID="000c7589-01" /dev/mapper/virtlab4p1: LABEL="virtlab4" UUID="[...]" TYPE="ocfs2" PARTUUID="000ab49c-01"
8 / 27
Virtualizace na MFF Virtualizace a cloud computing – NSWI150 (ZS) • • • •
Bednárek, Yaghob, Zavoral Skvˇ elá pˇrehledová pˇrednᡠska Pochopíte principy virtualizace Uvidíte Ewu Farnou
Administrace virtualizaˇ cní infrastruktury – NSWI151 (LS) • Yaghob • Praktická cviˇ cení “Enterprise virtualizace” • VMWare ESXi, MS Hyper-V
Administrace Unixu – NSWI106 (ZS) • • • •
praktická virtualizace v unixovém stylu hypervizor: QEMU (KVM) distribuované FS: OCFS2, GFS, GlusterFS, CEPH, . . . virtuální sítˇ e: vde 9 / 27
Virtualizace (Bednárek 2015, NSWI150) • iluze fyzického zaˇ rízení, které fyzicky neexistuje • dobˇ re známé rozhraní • fyzické zaˇ rízení (stránka pamˇ eti, poˇ cítaˇ c, disk, sít’. karta) • softwarové rozhraní (proces-kernel, HAL)
• implementováno jinak neˇ z obvykle • softwarovˇ e • jiným hardware (iSCSI ˇ radiˇ c) • v kombinaci software-hardware (virtuální pamˇ et’, moderní
virtualizace procesor˚ u) • pouˇ zívání termínu virtualizace je vˇ ecí zvyku • ssh/RDP není nazýbáno “virtualizace konzole” • iSCSI disk není “virtuální disk” • Java Virtual Machine není virtualizace fyzického stroje
10 / 27
Úˇ cel virtualizace (Bednárek 2015, NSWI150) • vˇ etˇ sí poˇ cet virtuálních objekt˚ u neˇ z fyzických • virtuální pamˇ et’, virtuální poˇ cítaˇ c
• virtuální objekty jiného druhu neˇ z fyzické • emulace poˇ cítaˇ ce jiné architektury
• virtuální objekty vzdálené od fyzických • vzdálené disky prezentované jako lokální, vzdálená
klávesnice+obrazovka • virtuální objekty implentované zcela jinak, neˇ z fyzické • disky implementované souborem
• virtuální objekty bez vazby na fyzický svˇ et • virtuální sítˇ e
• zásahy do chování, které by bez virtualizasce nebyly
moˇ zné • ladˇ ení, experimenty, mˇ eˇrení • s ˇizení vˇ seho druhu (time sharing, thin provisioning) • migrace, load balancing, checkpoints, fault-tolerance • zmˇ ena konfigurace stroje na dálku 11 / 27
Aplikaˇ cní virtualizace • izolované prostˇ redí pro procesy • chroot a jeho vylepˇ sení • omezení zdroj˚ u, omezení uˇ zivatel˚ u systému, omezení sítˇ e • kdy lze pouˇ zít pro virtualizaci Windows na Linuxu?
Linux • lxc-*(1), systemd-nspawn(1), vzctl(8) • systemd-nspawn(1) je budoucnost • limituje kontejner na read-only /sys, /proc/sys,
/sys/fs/selinux • neumoˇ ˇ uje mˇ ˇas, vytváˇret device nodes nebo zn enit c
naˇ cítat moduly jádra • machinectl(1) pro ˇ rízení kontejner˚ u
• vyuˇ zití cgroups pro limity • vyuˇ zití btrfs pro snapshoty
FreeBSD • chroot(8) • jail(8)
12 / 27
Paravirtualizace • virtualizované softwarové rozhraní uvnitˇ r hostovaného
OS • nutná úprava/spolupráce hostovaného OS • kdy lze pouˇ zít pro virtualizaci Windows na Linuxu?
Linux • XEN • xl(1), xentop(1), xenpm(1), xenstore(1) • Amazon, Citrix XenServer, Huawei FusionSphere, Oracle
VM, Sun xVM, Thinsy Corporation Virtual Iron
(Windows) • MS Hyper-V
13 / 27
(Plná) virtualizace • virtualizované rozhraní software-hardware • prakticky vˇ sechna ˇreˇ sení se spoléhají na podporu
moderních CPU + chipsets • kdy lze pouˇ zít pro virtualizaci Windows na Linuxu?
Linux • QEMU/kvm • nejpokroˇ cilejˇ sí open-source plná virtualizace • detaily dále
Freebsd • bhyve – BSD hypervisor • FreeBSD 10.0+ • bhyve(8), bhyvectl(8)
Solaris • Oracle VM Server • VirtualBox 14 / 27
QEMU • “QEMU is a generic and open source machine emulator
and virtualizer.” • pomocí dynamického pˇ rekladu emuluje cílovou
architekturu • bohatá podpora CPU • podpora KVM • vyuˇ zití rozˇ síˇrení moderních CPU (Intel VT-x, AMD SVM) • moˇ zné jen v rámci stejné architektury • výrazné zlepˇ sení výkonu
• live migrace, podpora iPXE, BIOS/UEFI, iSCSI, network
mount, SLIRP • moˇ zné paravirtualizované IO drivery kv˚ uli výkonu • qemu(1), qemu-img(1) • na vˇ sech Linux distribucích, “light-weight” bez GUI
15 / 27
QEMU
$ ls /usr/bin | grep qemuqemu-aarch64 qemu-alpha qemu-arm qemu-armeb qemu-cris qemu-i386 qemu-m68k qemu-microblaze qemu-microblazeel qemu-mips qemu-mips64 qemu-mips64el qemu-mipsel qemu-mipsn32 qemu-mipsn32el qemu-or32 qemu-ppc qemu-ppc64 qemu-ppc64abi32 qemu-ppc64le qemu-s390x qemu-sh4 qemu-sh4eb qemu-sparc qemu-sparc32plus qemu-sparc64 qemu-x86_64
16 / 27
QEMU – ARM, MIPS
$ qemu-arm -cpu help Available CPUs: arm1026 arm1136 arm1136-r2 arm1176 arm11mpcore arm926 arm946 cortex-a15 cortex-a8 cortex-a9 cortex-m3 cortex-m4 cortex-r5 pxa250 pxa255 pxa260 pxa261 pxa262 pxa270-a0 pxa270-a1 pxa270 pxa270-b0 pxa270-b1 pxa270-c0 pxa270-c5 sa1100 sa1110 ti925t any $ qemu-mips -cpu help MIPS ’4Kc’ MIPS ’4Km’ MIPS ’4KEcR1’ MIPS ’4KEmR1’ MIPS ’4KEc’ MIPS ’4KEm’ MIPS ’24Kc’ MIPS ’24Kf’ MIPS ’34Kf’ MIPS ’74Kf’ MIPS ’M14K’ MIPS ’M14Kc’ MIPS ’mips32r5-generic’ MIPS ’mips32r6-generic’
17 / 27
QEMU – Základní pouˇ zití
• GTK okno se vstupem/výstupem (Jak vyˇ reˇ sit ve virtlabu?) • SLIRP sít’ • KVM • 256MB ram • 1 CPU stejné architektury • raw disk • ISO instalaˇ cní obraz
$ qemu-system-x86_64 -enable-kvm -m 256 -drive file=drive1.img -cdrom archlinux.iso
\ \ \ \
18 / 27
QEMU – Vstup a výstup • -display • moˇ znosti pro : • sdl • curses • none • gtk • vnc • -nographic • vypne grafický výstup • narozdíl od -display none pˇ resmˇ eruje serial a monitor do console • -serial • stdio • telnet::4444,server,nowait • telnet localhost 4444
• -monitor • stejnˇ e jako u serial • pro ˇ rízení virtuálního stroje • system_powerdown emuluje PWRBTN 19 / 27
QEMU – Disky
• -drive • • • • •
file={image,drive,url} if={ide,scsi,sd,mtd,floppy,pflash,virtio} media={disk,cdrom} cache={none,writeback,writethrough} format={raw,qcow2}
• qemu-img(8) pro pˇ revod z .vmdk, .vdi, .vhd
20 / 27
QEMU – Sít’ • default je SLIRP • nefunguje ping, TCP/UDP ano, mizerný výkon
• vytvoˇ rení sít’ové karty • -net nic [model=virtio]
• pˇ ripojení karty k TAP zaˇrízení hosta • -net tap,ifname=tap0
• pˇ ripojení karty k bridge hosta • -net bridge,br=br0
• pˇ ripojení k vde switchi • -net vde,sock=/tmp/switch.sock
• vytvoˇ rení vde switche • vde_switch -sock /tmp/switch.sock • je moˇ zné tunelovat pˇres ssh mezi hostiteli
21 / 27
Distribuované FS
• obrazy virtuálních stroj˚ u typicky nejsou na lokálních
discích • z d˚ uvodu migrace, náhlé poruchy, bezdiskových stanic,
spec. HW • vyuˇ zití centrálního/distribuovaného úloˇ ziˇ stˇ e • je nutné ˇ reˇ sit synchronizaci pˇrístupu na jeden filesystem
z více host˚ u • drahé ˇ reˇ sení: SAN + Fibre Channel + “clusterový FS” • levné ˇ reˇ sení: “distribuovaný FS” (glusterfs, ceph) na
virtualizaˇ cní nody • termíny “distribuovaný” a “clusterový” jsou vysoce
pˇretíˇ zené a je nutné je uvádˇ et v urˇ citém kontextu
22 / 27
QEMU – Nadstavby • není tˇ reba pouˇ zívat • c ˇasto pˇridávají dalˇ sí vrstvy a nejsou spolehlivé • neztrácejte s nimi c ˇas, QEMU z ˇrádky znamená nejménˇ e
problém˚ u • libvirt • nástroj pro zastˇ reˇ sení vistualizaˇ cních ˇreˇ sení • QEMU/kvm, XEN, LXC, OpenVZ, VirtualBox, VMware ESX,
MS HyperV, . . . • virt-manager • nástroj pro management libvirt • klikátko
• virt-install • pro snazˇ sí vytváˇrení virtuálních stroj˚ u • vˇ ec názoru
• qemu-launcher, qtemmu • jednoduchá GUI 23 / 27
Linux distribuce pro virtualizaci • Proxmox • • • • • •
open-source zaloˇ zeno na Debianu s upraveným RHEL kernelem velice povedená web console, CLI kontejnerová virtualizace pˇres OpenVZ plná virtualizace pˇres KVM instalace na pár kliknutí • podpora pro ZFS, iSCSI, Fiber Channel, NFS, GlusterFS, CEPH a DRBD • opravdu funkˇ cní HA cluster (vyuˇ zívá Corosync) • Pˇri výpadku hostitele je host automaticky spuˇ stˇ en na jiném hostiteli
• z ˇivá migrace • vyzkouˇ sené v produkci
24 / 27
Integrace QEMU se systemd – Konfigurace
# cat /etc/conf.d/qemu.d/stroj type="system-x86_64" args="-enable-kvm -cpu host \ -smp cores=2,threads=2,sockets=1 -m 8G \ -drive file=/var/lib/qemu/images/stroj.img,\ format=raw,if=virtio \ -net nic,model=virtio -net bridge,br=br0 \ -display none \ -monitor telnet:127.0.0.1:7100,server,nowait, \ nodelay" haltcmd="echo ’system_powerdown’ | nc 127.0.0.1 7100"
25 / 27
Integrace QEMU se systemd – qemu.service # cat /etc/systemd/system/[email protected] [Unit] Description=QEMU virtual machine [Service] Environment="type=system-x86_64" \ "haltcmd=kill -INT $MAINPID" EnvironmentFile=/etc/conf.d/qemu.d/%i ExecStart=/usr/bin/env qemu-${type} -name %i \ -nographic $args ExecStop=/bin/sh -c ${haltcmd} TimeoutStopSec=30 KillMode=none [Install] WantedBy=multi-user.target
26 / 27
Integrace QEMU se systemd – Pouˇ zití
# # # #
systemctl systemctl systemctl systemctl
start qemu@stroj stop qemu@stroj enable qemu@stroj disable qemu@stroj
27 / 27