COMMON IMAGE FORMATS
IMAGE SIZE CONSIDERATIONS
Comparison of RAW and QCOW2
qemu-img info osp-small.qcow2
qemu-img convert -f qcow2 -O raw osp-small.qcow2 osp-small.raw
BUILDING A CUSTOM IMAGE
diskimage-builder, guestfish or virt-customize,
MODIFYING GUEST AND DISK IMAGES
MAKING MINOR IMAGE CUSTOMIZATIONS
GUESTFISH AND VIRT-CUSTOMIZE INTERNALS
USING GUESTFISH TO CUSTOMIZE IMAGES
USING GUESTFISH TO CUSTOMIZE IMAGES
guestfish -i --network -a ~/demo-rhel-base.qcow2
USING VIRT-CUSTOMIZE TO CUSTOMIZE IMAGES
[user@demo ~]$ virt-customize -a ~/demo-rhel-base.qcow2 --install aide --root-
password password:letmein --selinux-relabel
Comparison of guestfish and virt-customize Commands
ADDITIONAL TOOLS
virt-builder
virt-sysprep
virt-customize -a ~/finance-rhel-mail.qcow2 --run-command 'systemctl enable
postfix' --run-command 'postconf -e "relayhost = [workstation.lab.example.com]"'
--run-command 'postconf -e "inet_interfaces = all"' --run-command 'yum -y install
mailx' --selinux-relabel
REVIEWING CLOUD-INIT BASICS
cat /home/student/.ssh/example-keypair.pub
[student@workstation ~]$ disk-image-create vm rhel7 \
-t qcow2 \
-p httpd \
-o production-rhel-web.qcow2
-----------------------------------------------------------------------------------
---------------------------------------------------------
MANAGING STORAGE
IMPLEMENTING BLOCK STORAGE
BLOCK STORAGE CHOICES
LVM and iSCSI
Red Hat Ceph Storage
NFS
Vendor-specific Storage
THE RED HAT CEPH STORAGE ARCHITECTURE
CEPH TERMINOLOGY
Ceph cluster
Node
Pool
Placement Groups
CEPH STORAGE BACK END COMPONENTS
Monitors (MONs),
Object Storage Devices (OSDs),
Managers (MGRs),
Metadata Servers (MDSs)
The Key-ring File
/etc/ceph/ceph.conf
/etc/ceph/$cluster.$name.keyring
Command-line Tools
[root@controller ~]# ceph --id operator3 osd lspools
AUTHORIZATION WITH CEPHX
Cephx Capabilities
r,w,x,*
rados lock get
rbd list.
ceph auth list
ceph auth get client.admin
ceph auth print-key client.admin
USER MANAGEMENT
Listing Users and Their Capabilities
Creating New User Accounts
[root@controller ~]# ceph auth get-or-create client.application1 \
mon 'allow r' \
osd 'allow rw' \
> /etc/ceph/ceph.client.application1.keyring
OPENSTACK IMAGE SERVICE WITH RED HAT CEPH STORAGE
default_store,stores,rbd_store_user,rbd_store_pool,rbd_store_ceph_conf,rbd_store_ch
unk_size
OPENSTACK BLOCK STORAGE SERVICE WITH RED HAT CEPH STORAGE
enabled_backends,volume_backend_name,volume_driver,rbd_ceph_conf,rbd_user,rbd_pool
[root@ceph ~]# systemctl list-units -t service ceph\*
ceph -s
ceph osd lspools
openstack volume create --size 1 --type cephvoltype cephvol1
rados -p volumes ls
openstack volume create --size 10 --type cephvoltype --image rhel7 cephvol2
rados -p volumes ls | grep volume
[user@demo ~]$ cinder type-create volume-multi
[user@demo ~]$ cinder type-key volume-multi set multiattach="<is> True"
[user@demo ~]$ cinder create 2 --name multi-volume1 --volume-type volume-multi
[root@controller0 ~]# docker exec -it glance_api grep -Ei 'rbd|ceph'
/etc/glance/glance-api.conf | grep -v ^#
rados -p images ls | grep d0712086-6594-4620-b936-e58573e9c451
rados -p volumes ls
[root@controller0 ~]# docker exec -it cinder_api grep -Ei 'rbd|ceph'
/etc/cinder/cinder.conf | grep -v ^#
-----------------------------------------------------------------------------------
---------------------------------------------------------
MANAGING OPENSTACK NETWORKING
INTRODUCING THE SDN ARCHITECTURE
Architectural Components
Application Plane
Management Plane
Control Plane
Operational Plane
Forwarding Plane
SDN Terminology
Application
Data path
Controller
Control to Data Plane Interface (CDPI)
Northbound Interfaces (NBIs)
SDN Classroom Components
[root@controller0 ~]# view ovsdb-server.log
[root@controller0 ~]# view ovs-vswitchd.log
[root@controller0 ~]# ll /var/log/containers/openvswitch
[root@computehci0 ~]# ps -ef | grep ovn
INTRODUCING NETWORK TYPES
Flat Networks
Virtual LAN (VLAN) Networks
Introduction to Geneve
Geneve Components
[root@controller0 ~]# ovs-vsctl show
[root@controller0 ~]# ps -ef | grep ovnnb
[root@controller0 ~]# ovs-vsctl show
[root@controller0 ~]# ovs-ofctl show br-trunk
[root@compute0 ~]# tcpdump -ten -i vlan20 | grep ICMP
[root@compute0 ~]# ovs-vsctl list open
[root@compute0 ~]# ovn-sbctl lflow-list > flow.txt
[root@compute0 ~]# view flow.txt
[root@compute0 ~]# ovn-nbctl show
INTRODUCING OPEN VIRTUAL NETWORKING (OVN)
INTRODUCTION TO MODULAR LAYER 2 (ML2)
ML2 Drivers and Networks Types
Flat
VLAN
GRE and VXLAN
Geneve
INTRODUCTION TO OPEN VIRTUAL NETWORKING(OVN)
OVN Architecture
OVN Database
OVN and OpenFlow
OVN Logical Flows
COMPARING ML2/OVS TO ML2/OVN
OVN GATEWAY ROUTER
[root@controller0 ~]# ovn-nbctl show
[root@controller0 ~]# ovs-vsctl list open
[root@controller0 ~]# export OVN_SB_DB=tcp:172.24.1.50:6642
[root@controller0 ~]# ovn-sbctl lflow-list
[root@controller0 ~]# ovn-vsctl list open
[root@controller0 ~]# export OVN_NB_DB=tcp:172.24.1.50:6641
[root@controller0 ~]# export OVN_SB_DB=tcp:172.24.1.50:6642
[root@controller0 ~]# env | grep OVN_
INTRODUCTION TO SECURITY GROUPS
[root@controller0 ~]# ovn-sbctl lflow-list
[root@controller0 ~]# ovn-nbctl ls-list
[root@controller0 ~]# ovn-nbctl acl-list neutron-2fa7885cc49d-452d-8501-
3cb02582ebf4
OVN DHCP
OVN LOAD BALANCING
OVN METADATA
[root@controller0 ~]# ovn-sbctl lflow-list
[root@controller0 ~]# ovn-nbctl acl-list neutron-7ad21970-5986-42e0-9b48-
64ab414bb0b1
[student@workstation ~(developer1-finance)]$ openstack security group rule list
default --long -f json
[root@controller0 ~]# ovn-sbctl lflow-list > flow.txt
[root@controller0 ~]# view flow.txt
[root@controller0 ~]# ovn-nbctl show
[root@controller0 ~]# ovn-nbctl lr-list
[root@controller0 ~]# ovn-nbctl lr-nat-list neutron-54a04000-17ea-44df-8c79-
d18164e6a1f2
[root@controller0 ~]# ovn-sbctl lflow-list > dhcp.txt
[root@controller0 ~]# view dhcp.txt
[demo@workstation ~]$ openstack network show 6fce40cf-7da3-4242-938a-3c7043dc2b6a
[user@demo ~]$ openstack subnet show provider-subnet-172.25.250
[root@controller0 ~]# ovs-vsctl get open . external-ids:ovn-bridge-mappings
[root@controller0 ~]# ovs-vsctl show
[root@controller0 ~]# grep ^network_vlan_ranges /var/lib/config-data/puppet-
generated/neutron/etc/neutron/plugins/ml2/ml2_conf.ini
-----------------------------------------------------------------------------------
---------
DESCRIBING THE INSTANCE LAUNCH PROCESS
[student@workstation ~(architect1-finance)]$ openstack aggregate create hci-
aggregate
[student@workstation ~(architect1-finance)]$ openstack aggregate add host hci-
aggregate computehci0.overcloud.example.com
student@workstation ~(architect1-finance)]$ openstack aggregate set --property
computehci=true hci-aggregate
[student@workstation ~(architect1-finance)]$ openstack aggregate show hci-aggregate