Upload
garey-griffith
View
221
Download
1
Tags:
Embed Size (px)
Citation preview
Overview1. Virtualization2. High Level Steps & Concepts3. Build a Guest Machine4. Packages and Configuration5. Running Headless VMs
2
1. Virtualization• Single Host• CPU, Disk, Memory, Video, Sound• Offerings:– VirtualBox, – OracleVM, – Vmware, – KVM, Xen– Microsoft Virtual Machine– Amazon EC2 (cloud)
3
2. High Level Steps & Concepts1. Virtualization Host Recommendations2. Guest Recommendations3. Storage4. Networking5. Installing VirtualBox6. Installing a Guest
4
2. High Level Steps & Concepts1. Virtualization Host Recommendations:– CPU: Multi Core, at least 4 cores– RAM: 4GB min, 8 recommended, 16GB better– Disk: 1 spindle per Guest, SSD if possible– Video: Shell Prompt– Windows 7 64-bit, SSD TRIM command support
5
3.2 Virtual Box: High Level Steps1. VM Name & OS Type2. Specify Memory (2GB)3. Virtual Hard Disk Creation4. Specify CD Rom for boot5. Customize Guest VM6. Boot and Install OS7. Specify Hard Disk for Boot8. Boot Guest VM
11
4. Packages and Configuration1. Required Packages2. Memory Configuration3. Network Configuration4. Kernel Configuration5. User Limits Configuration6. Security Configuration7. Network Time Protocol Configuration8. User and Group Creation9. VirtualBox Guest Additions
78
REQ
UIR
ED P
ACKA
GES
[root@n1 setup]# more packages.txtkernel-headers-2.6.18-194.el5.x86_64.rpmlibgomp-4.4.0-6.el5.x86_64.rpmbinutils-2.17.50.0.6-14.el5.x86_64.rpmcompat-libstdc++-33-3.2.3-61.x86_64.rpmelfutils-libelf-0.137-3.el5.x86_64.rpmelfutils-libelf-devel-0.137-3.el5.x86_64.rpmelfutils-libelf-devel-static-0.137-3.el5.x86_64.rpmgcc-4.1.2-48.el5.x86_64.rpmgcc-c++-4.1.2-48.el5.x86_64.rpmglibc-2.5-49.x86_64.rpmglibc-common-2.5-49.x86_64.rpmglibc-devel-2.5-49.x86_64.rpmglibc-headers-2.5-49.x86_64.rpmksh-20100202-1.el5.x86_64.rpmlibaio-0.3.106-5.x86_64.rpmlibaio-devel-0.3.106-5.x86_64.rpmlibgcc-4.1.2-48.el5.x86_64.rpmlibstdc++-4.1.2-48.el5.x86_64.rpmlibstdc++-devel-4.1.2-48.el5.x86_64.rpmmake-3.81-3.el5.x86_64.rpmsysstat-7.0.2-3.el5.x86_64.rpmunixODBC-2.2.11-7.1.x86_64.rpmunixODBC-devel-2.2.11-7.1.x86_64.rpm
Packages - List
[root@n1 setup]# more install_packages.shumount /dev/cdom 1>/dev/null 2>&1mount /dev/cdrom /media 1>/dev/null 2>&1export CD=/media/Server
for p in `cat packages.txt`; do echo "# $CD/$p" rpm -Uvh --nodeps $CD/$pdone
Packages – Install Script
[root@n1 ~]# df -h -t tmpfsFilesystem Size Used Avail Use% Mounted ontmpfs 2.0G 0 2.0G 0% /dev/shm
Automatic Memory Management and /dev/shm
Size /dev/shm for MEMORY_TARGET shared memory allocation of 3G[root@n1 ~]# umount tmpfs
[root@n1 ~]# df -h -t tmpfsFilesystem Size Used Avail Use% Mounted on
[root@n1 ~]# mount -t tmpfs shmfs -o size=3000m /dev/shm
[root@n1 ~]# df -h -t tmpfsFilesystem Size Used Avail Use% Mounted onshmfs 3.0G 0 3.0G 0% /dev/shm
[root@n1 ~]# cat /etc/fstab/dev/VolGroup00/LogVol00 / ext3 defaults 1 1LABEL=/boot /boot ext3 defaults 1 2#tmpfs /dev/shm tmpfs defaults 0 0tmpfs /dev/shm tmpfs size=3000m 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0/dev/VolGroup00/LogVol01 swap swap defaults 0 0
Edit /etc/fstab for persistence
MEM
ORY
CO
NFI
GU
RATI
ON
eth0 configuration
NET
WO
RK C
ON
FIG
URA
TIO
N
[root@n1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0# Intel Corporation 82540EM Gigabit Ethernet ControllerDEVICE=eth0BOOTPROTO=staticBROADCAST=199.1.1.255HWADDR= 08:00:27:0F:D3:AFIPADDR=199.1.1.61NETMASK=255.255.255.0NETWORK=199.1.1.0ONBOOT=yes
Edit /etc/sysctl.conf# Oracle 11gR2 configuration# http://download.oracle.com/docs/cd/E11882_01/install.112/e16768/toc.htm#BHCCADGD
# concurrent outstanding requestsfs.aio-max-nr = 1048576
# filesfs.file-max = 6815744
# Shared Memorykernel.shmall = 2097152kernel.shmmax = 536870912kernel.shmmni = 4096
# Semaphores semmsl semmns semopm semmnikernel.sem = 250 32000 100 128
# Networknet.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586
# Huge Pages for Oracle group 501 (oracle user group)vm.hugetlb_shm_group=501 KE
RNEL
CO
NFI
GU
RATI
ON
Apply/etc/sysctl.conf changes[root@n1 ~]# /sbin/sysctl -pnet.ipv4.ip_forward = 0net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1kernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmall = 4294967296fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = 2097152kernel.shmmax = 536870912kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048586vm.hugetlb_shm_group = 501
KERN
EL C
ON
FIG
URA
TIO
N
Edit /etc/security/limits.conf# oracle limitsoracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240
USE
R LI
MIT
S
Edit /etc/pam.d/login# oraclesession required pam_limits.so
SECU
RITY
Edit /etc/selinux/config# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - SELinux is fully disabled.SELINUX=disabled
Edit /etc/sysconfig/ntpd# -x sets the the slew/step threshold to 600 secondsOPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid“
NTP
Restart ntpd[root@n1 ~]# /etc/init.d/ntpd restartShutting down ntpd: [ OK ]ntpd: Synchronizing with time server: [ OK ]Starting ntpd: [ OK ]
Create dba and oinstall groups[root@n1 ~]# cat /etc/sysctl.conf | grep ^vm.hugetlb_shm_groupvm.hugetlb_shm_group=501[root@n1 ~]# groupadd -g 501 dba[root@n1 ~]# groupadd -g 502 oinstall
USE
R AN
D G
ROU
P CR
EATI
ON
Create oracle user[root@n1 oracle]# mkdir -p /u01/app
[root@n1 oracle]# useradd -m -d /u01/app/oracle -u 501 -g oinstall -G dba -s /bin/bash oracle
[root@n1 oracle]# passwd oracleChanging password for user oracle.New UNIX password:Retype new UNIX password:passwd: all authentication tokens updated successfully.
Edit /etc/sudoers# Allow oracle user full sudo accessoracle ALL=(ALL) ALL
Create grid and db directories (as oracle)[root@n1 oracle]# su - oracle[oracle@n1 ~]$ mkdir -p /u01/app/grid/11.2[oracle@n1 ~]$ mkdir -p /u01/app/oracle/product/db/11.2
Mount VirtualBox ISO image from HostD:\Program Files\Sun\VirtualBox\VBoxGuestAdditions.iso
Attach using Host Window: Menu -> Devices -> CD/DVD Devices -> More CD/DVD Images…
Mount as CD
VBox
Gue
stAd
ditio
ns
Mount and run VirtualBox Guest Additions from Guest [root@n1 ~]# df -h | grep media/dev/hdc 33M 33M 0 100% /media/VBOXADDITIONS_3.2.8_64453
[root@n1 ~]# cd /media/VBOXADDITIONS_3.2.8_64453/
[root@n1 VBOXADDITIONS_3.2.8_64453]# sh ./VBoxLinuxAdditions-amd64.run
Why?• Mouse Pointer Integration• Improved Video Resolution• Seamless windows• Time Synchronization• Shared Clipboard• Automated Logins
VBoxManage.exe modifyvm to set guest VRDP port
5. R
UN
NIN
G H
EAD
LESS
VM
s
VBoxManage.exe modifyvm n1 –vrdp on –vrdpport 3361VBoxManage.exe modifyvm n2 –vrdp on –vrdpport 3362
C:\>VBoxManage.exe modifyvm n1 --vrdp on --vrdpmulticon on --vrdpport 3361Oracle VM VirtualBox Command Line Management Interface Version 3.2.8(C) 2005-2010 Oracle CorporationAll rights reserved.
C:\>VBoxManage.exe modifyvm n2 --vrdp on --vrdpmulticon on --vrdpport 3362Oracle VM VirtualBox Command Line Management Interface Version 3.2.8(C) 2005-2010 Oracle CorporationAll rights reserved.
• Windows already uses port 3389• n1 on port 3361, n2 on port 3362• VBoxHeadless can be called directly• Use a client to connect to <virtualbox host>:<virtual box guest vrdp port> : “mstsc.exe /v:localhost:3361”
VBoxManage.exe showvminfo to verifyC:\>VBoxManage.exe showvminfo n2 | findstr /ib vrdpVRDP: enabled (Address 0.0.0.0, Ports 3362, MultiConn: off, ReuseSingleConn: off, Authentication type: null)
VBoxManage.exe startvm to run C:\>VBoxManage.exe startvm n2 --type vrdpOracle VM VirtualBox Command Line Management Interface Version 3.2.8(C) 2005-2010 Oracle CorporationAll rights reserved.
Waiting for the VM to power on...VM has been successfully started.