Difference between revisions of "LPIC-305 Objectives V3.0"

From LPI Wiki
Jump to: navigation, search
(Created page with "__FORCETOC__ ==Introduction== The description of the entire LPIC-3 programme is listed here. <br /><br /> ==Version Information== These objectives are version...")
 
(Version Information)
 
(59 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
__FORCETOC__
 
__FORCETOC__
 
==Introduction==
 
==Introduction==
The description of the entire [[LPIC-3]] programme is listed [[LPIC-3|here]].
+
The description of the entire [[LPIC-3]] program is listed [[LPIC-3|here]].
 
<br /><br />
 
<br /><br />
 +
 
==Version Information==
 
==Version Information==
  
These objectives are version 2.0.0.
+
These objectives are for version 3.0.
  
There is also a [[LPIC304SummaryVersion1To2|summary and detailed information]] on the changes from version 1.0 to 2.0 of the objectives.
+
This exam results from a split of version 2.0 of the exam 304.
  
The version [[LPIC-304 Objectives V1|1.x objectives]] can be found [[LPIC-304 Objectives V1|here]].
+
There is also a [[LPIC305SummaryVersion2To3|summary and detailed information]] on the changes from version 2.0 of exam 304 to 3.0 of these objectives.
 +
 
 +
The version [[LPIC-304 Objectives V2|2.x objectives]] can be found [[LPIC-304 Objectives V2|here]].
  
 
<br />
 
<br />
Line 15: Line 18:
 
==Translations of Objectives==
 
==Translations of Objectives==
 
The following translations of the objectives are available on this wiki:
 
The following translations of the objectives are available on this wiki:
* [[LPIC-304 Objectives V2|English]]
+
* [[LPIC-305 Objectives V3.0|English]]
* [[LPIC-304 Objectives V2(ES)|Spanish]]
+
* [[LPIC-305 Objectives V3.0(JA)|Japanese]]
 
<br />
 
<br />
  
 
==Objectives==
 
==Objectives==
===''Topic 330: Virtualization''===
+
===''Topic 351: Full Virtualization''===
====<span style="color:navy">330.1 Virtualization Concepts and Theory (weight: 8)</span>====
+
====<span style="color:navy">351.1 Virtualization Concepts and Theory (weight: 6)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 8
+
| style="background:#eaeaea" | 6
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should know and understand the general concepts, theory and terminology of Virtualization.  This includes Xen, KVM and libvirt terminology.
+
| style="background:#eaeaea" | Candidates should know and understand the general concepts, theory and terminology of virtualization.  This includes Xen, QEMU and libvirt terminology.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Terminology
+
* Understand virtualization terminology
* Pros and Cons of Virtualization
+
* Understand the pros and cons of virtualization
* Variations of Virtual Machine Monitors
+
* Understand the various variations of Hypervisors and Virtual Machine Monitors
* Migration of Physical to Virtual Machines
+
* Understand the major aspects of migrating physical to virtual machines
* Migration of Virtual Machines between Host systems
+
* Understand the major aspects of migrating virtual machines between host systems
* Cloud Computing
+
* Understand the features and implications of virtualization for a virtual machine, such as snapshotting, pausing, cloning and resource limits
 +
* Awareness of oVirt, Proxmox, systemd-machined and VirtualBox
 +
* Awareness of Open vSwitch
 
'''The following is a partial list of the used files, terms and utilities:'''
 
'''The following is a partial list of the used files, terms and utilities:'''
 
* Hypervisor
 
* Hypervisor
 
* Hardware Virtual Machine (HVM)
 
* Hardware Virtual Machine (HVM)
 
* Paravirtualization (PV)
 
* Paravirtualization (PV)
* Container Virtualization
 
 
* Emulation and Simulation
 
* Emulation and Simulation
 
* CPU flags
 
* CPU flags
 
* /proc/cpuinfo
 
* /proc/cpuinfo
 
* Migration (P2V, V2V)
 
* Migration (P2V, V2V)
* IaaS, PaaS, SaaS
 
 
<br />
 
<br />
  
====<span style="color:navy">330.2 Xen (weight: 9)</span>====
+
====<span style="color:navy">351.2 Xen (weight: 3)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 9
+
| style="background:#eaeaea" | 3
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
Line 57: Line 60:
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Xen architecture, networking and storage
+
* Understand architecture of Xen, including networking and storage
* Xen configuration
+
* Basic configuration of Xen nodes and domains
* Xen utilities
+
* Basic management of Xen nodes and domains
* Troubleshooting Xen installations
+
* Basic troubleshooting of Xen installations
* Basic knowledge of XAPI
+
* Awareness of XAPI
 
* Awareness of XenStore
 
* Awareness of XenStore
 
* Awareness of Xen Boot Parameters
 
* Awareness of Xen Boot Parameters
Line 72: Line 75:
 
* xl.cfg
 
* xl.cfg
 
* xl.conf
 
* xl.conf
* xe
 
 
* xentop
 
* xentop
 
<br />
 
<br />
  
====<span style="color:navy">330.3 KVM (weight: 9)</span>====
+
====<span style="color:navy">351.3 QEMU (weight: 4)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 9
+
| style="background:#eaeaea" | 4
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should be able to install, configure, maintain, migrate and troubleshoot KVM installations.
+
| style="background:#eaeaea" | Candidates should be able to install, configure, maintain, migrate and troubleshoot QEMU installations.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* KVM architecture, networking and storage
+
* Understand the architecture of QEMU, including KVM, networking and storage
* KVM configuration
+
* Start QEMU instances from the command line
* KVM utilities
+
* Manage snapshots using the QEMU monitor
* Troubleshooting KVM installations
+
* Install the QEMU Guest Agent and VirtIO device drivers
 +
* Troubleshoot QEMU installations, including networking and storage
 +
* Awareness of important QEMU configuration parameters
 
'''The following is a partial list of the used files, terms and utilities:'''
 
'''The following is a partial list of the used files, terms and utilities:'''
 
* Kernel modules: kvm, kvm-intel and kvm-amd
 
* Kernel modules: kvm, kvm-intel and kvm-amd
* /etc/kvm/
 
 
* /dev/kvm
 
* /dev/kvm
* kvm
+
* QEMU monitor
* KVM monitor
+
 
* qemu
 
* qemu
* qemu-img
+
* qemu-system-x86_64
 +
* ip
 +
* brctl
 +
* tunctl
 
<br />
 
<br />
  
====<span style="color:navy">330.4 Other Virtualization Solutions (weight: 3)</span>====
+
====<span style="color:navy">351.4 Libvirt Virtual Machine Management (weight: 9)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 3
+
| style="background:#eaeaea" | 9
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should have some basic knowledge and experience with alternatives to Xen and KVM.
+
| style="background:#eaeaea" | Candidates should be able to manage virtualization hosts and virtual machines (‘libvirt domains’) using libvirt and related tools.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Basic knowledge of OpenVZ and LXC
+
* Understand the architecture of libvirt
* Awareness of other virtualization technologies
+
* Manage libvirt connections and nodes
* Basic knowledge of virtualization provisioning tools
+
* Create and manage QEMU and Xen domains, including snapshots
 
+
* Manage and analyze resource consumption of domains
 +
* Create and manage storage pools and volumes
 +
* Create and manage virtual networks
 +
* Migrate domains between nodes
 +
* Understand how libvirt interacts with Xen and QEMU
 +
* Understand how libvirt interacts with network services such as dnsmasq and radvd
 +
* Understand libvirt XML configuration files
 +
* Awareness of virtlogd and virtlockd
 
'''The following is a partial list of the used files, terms and utilities:'''
 
'''The following is a partial list of the used files, terms and utilities:'''
* OpenVZ
+
* libvirtd
* VirtualBox
+
* /etc/libvirt/
* LXC
+
* virsh (including relevant subcommands)
* docker
+
 
* packer
+
* vagrant
+
 
<br />
 
<br />
  
====<span style="color:navy">330.5 Libvirt and Related Tools (weight: 5)</span>====
+
====<span style="color:navy">351.5 Virtual Machine Disk Image Management (weight: 3)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 5
+
| style="background:#eaeaea" | 3
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should have basic knowledge and experience with the libvirt library and commonly available tools.
+
| style="background:#eaeaea" | Candidates should be able to manage virtual machines disk images. This includes converting disk images between various formats and hypervisors and accessing data stored within an image.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* libvirt architecture, networking and storage
+
* Understand features of various virtual disk image formats, such as raw images, qcow2 and VMDK
* Basic technical knowledge of libvirt and virsh
+
* Manage virtual machine disk images using qemu-img
* Awareness of oVirt
+
* Mount partitions and access files contained in virtual machine disk images using libguestfish
 +
* Copy physical disk content to a virtual machine disk image
 +
* Migrate disk content between various virtual machine disk image formats
 +
* Awareness of Open Virtualization Format (OVF)
 
'''The following is a partial list of the used files, terms and utilities:'''
 
'''The following is a partial list of the used files, terms and utilities:'''
* libvirtd
+
* qemu-img
* /etc/libvirt/
+
* guestfish (including relevant subcommands)
* virsh
+
* guestmount
* oVirt
+
* guestumount
 +
* virt-cat
 +
* virt-copy-in
 +
* virt-copy-out
 +
* virt-diff
 +
* virt-inspector
 +
* virt-filesystems
 +
* virt-rescue
 +
* virt-df
 +
* virt-resize
 +
* virt-sparsify
 +
* virt-p2v
 +
* virt-p2v-make-disk
 +
* virt-v2v
 +
* virt-sysprep
 +
 
 
<br />
 
<br />
  
====<span style="color:navy">330.6 Cloud Management Tools (weight: 2)</span>====
+
===''Topic 352: Container Virtualization''===
 +
====<span style="color:navy">352.1 Container Virtualization Concepts (weight: 7)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 2
+
| style="background:#eaeaea" | 7
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should have basic feature knowledge of commonly available cloud management tools.
+
| style="background:#eaeaea" | Candidates should understand the concept of container virtualization. This includes understanding the Linux components used to implement container virtualization as well as using standard Linux tools to troubleshoot these components.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Basic feature knowledge of OpenStack and CloudStack
+
* Understand the concepts of system and application container
* Awareness of Eucalyptus and OpenNebula
+
* Understand and analyze kernel namespaces
 +
* Understand and analyze control groups
 +
* Understand and analyze capabilities
 +
* Understand the role of seccomp, SELinux and AppArmor for container virtualization
 +
* Understand how LXC and Docker leverage namespaces, cgroups, capabilities, seccomp and MAC
 +
* Understand the principle of runc
 +
* Understand the principle of CRI-O and containerd
 +
* Awareness of the OCI runtime and image specifications
 +
* Awareness of the Kubernetes Container Runtime Interface (CRI)
 +
* Awareness of podman, buildah and skopeo
 +
* Awareness of other container virtualization approaches in Linux and other free operating systems, such as rkt, OpenVZ, systemd-nspawn or BSD Jails
 
'''The following is a partial list of the used files, terms and utilities:'''
 
'''The following is a partial list of the used files, terms and utilities:'''
* OpenStack
+
* nsenter
* CloudStack
+
* unshare
* Eucalyptus
+
* ip (including relevant subcommands)
* OpenNebula
+
* capsh
 +
* /sys/fs/cgroups
 +
* /proc/[0-9]+/ns
 +
* /proc/[0-9]+/status
 
<br />
 
<br />
 +
 +
====<span style="color:navy">352.2 LXC (weight: 6)</span>====
 +
{|
 +
| style="background:#dadada" | '''Weight'''
 +
| style="background:#eaeaea" | 6
 +
|-
 +
| style="background:#dadada; padding-right:1em" | '''Description'''
 +
| style="background:#eaeaea" | Candidates should be able to use system containers using LXC and LXD. The version of LXC covered is 3.0 or higher.
 +
|}
 +
'''Key Knowledge Areas:'''
 +
* Understand the architecture of LXC and LXD
 +
* Manage LXC containers based on existing images using LXD, including networking and storage
 +
* Configure LXC container properties
 +
* Limit LXC container resource usage
 +
* Use LXD profiles
 +
* Understand LXC images
 +
* Awareness of traditional LXC tools
 +
'''Partial list of the used files, terms and utilities:'''
 +
* lxd
 +
* lxc (including relevant subcommands)
 
<br />
 
<br />
===''Topic 334: High Availability Cluster Management''===
+
 
====<span style="color:navy">334.1 High Availability Concepts and Theory (weight: 5)</span>====
+
====<span style="color:navy">352.3 Docker (weight: 9)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 5
+
| style="background:#eaeaea" | 9
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should understand the properties and design approaches of high availability clusters.
+
| style="background:#eaeaea" | Candidate should be able to manage Docker nodes and Docker containers. This include understand the architecture of Docker as well as understanding how Docker interacts with the node’s Linux system.  
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Understand the most important cluster architectures.
+
* Understand the architecture and components of Docker
* Understand recovery and cluster reorganization mechanisms.
+
* Manage Docker containers by using images from a Docker registry
* Design an appropriate cluster architecture for a given purpose.
+
* Understand and manage images and volumes for Docker containers
* Application aspects of high availability.
+
* Understand and manage logging for Docker containers
* Operational considerations of high availability.
+
* Understand and manage networking for Docker
'''The following is a partial list of the used files, terms and utilities:'''
+
* Use Dockerfiles to create container images
* Active/Passive Cluster, Active/Active Cluster
+
* Run a Docker registry using the registry Docker image
* Failover Cluster, Load Balanced Cluster
+
'''Partial list of the used files, terms and utilities:'''
* Shared-Nothing Cluster, Shared-Disk Cluster
+
* dockerd
* Cluster resources
+
* /etc/docker/daemon.json
* Cluster services
+
* /var/lib/docker/
* Quorum
+
* docker
* Fencing
+
* Dockerfile
* Split brain
+
* Redundancy
+
* Mean Time Before Failure (MTBF)
+
* Mean Time To Repair (MTTR)
+
* Service Level Agreement (SLA)
+
* Desaster Recovery
+
* Replication
+
* Session handling
+
 
<br />
 
<br />
  
====<span style="color:navy">334.2 Load Balanced Clusters (weight: 6)</span>====
+
====<span style="color:navy">352.4 Container Orchestration Platforms (weight: 3)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 6
+
| style="background:#eaeaea" | 3
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should know how to install, configure, maintain and troubleshoot LVS.  This includes the configuration and use of keepalived and ldirectord. Candidates should further be able to install, configure, maintain and troubleshoot HAProxy.
+
| style="background:#eaeaea" | Candidates should understand the importance of container orchestration and the key concepts Docker Swarm and Kubernetes provide to implement container orchestration.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Understanding of LVS / IPVS.
+
* Understand the relevance of container orchestration
* Basic knowledge of VRRP.
+
* Understand the key concepts of Docker Compose and Docker Swarm
* Configuration of keepalived.
+
* Understand the key concepts of Kubernetes and Helm
* Configuration of ldirectord.
+
* Awareness of OpenShift, Rancher and Mesosphere DC/OS
* Backend server network configuration.
+
<br />
* Understanding of HAProxy.
+
* Configuration of HAProxy.
+
'''The following is a partial list of the used files, terms and utilities:'''
+
* ipvsadm
+
* syncd
+
* LVS Forwarding (NAT, Direct Routing, Tunneling, Local Node)
+
* connection scheduling algorithms
+
* keepalived configuration file
+
* ldirectord configuration file
+
* genhash
+
* HAProxy configuration file
+
* load balancing algorithms
+
* ACLs
+
 
<br />
 
<br />
  
====<span style="color:navy">334.3 Failover Clusters (weight: 6)</span>====
+
===''Topic 353: VM Deployment and Provisioning''===
 +
====<span style="color:navy">353.1 Cloud Management Tools (weight: 2)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 6
+
| style="background:#eaeaea" | 2
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should have experience in the installation, configuration, maintenance and troubleshooting of a Pacemaker cluster. This includes the use of Corosync. The focus is on Pacemaker 1.1 for Corosync 2.x.
+
| style="background:#eaeaea" | Candidates should understand common offerings in public clouds and have basic feature knowledge of commonly available cloud management tools.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Pacemaker architecture and components (CIB, CRMd, PEngine, LRMd, DC, STONITHd).
+
* Understand common offerings in public clouds
* Pacemaker cluster configuration.
+
* Basic feature knowledge of OpenStack
* Resource classes (OCF, LSB, Systemd, Upstart, Service, STONITH, Nagios).
+
* Basic feature knowledge of Terraform
* Resource rules and constraints (location, order, colocation).
+
* Awareness of CloudStack, Eucalyptus and OpenNebula
* Advanced resource features (templates, groups, clone resources, multi-state resources).
+
'''Partial list of the used files, terms and utilities:'''
* Pacemaker management using pcs.
+
* IaaS, PaaS, SaaS
* Pacemaker management using crmsh.
+
* OpenStack
* Configuration and Management of corosync in conjunction with Pacemaker.
+
* Terraform
* Awareness of other cluster engines (OpenAIS, Heartbeat, CMAN).
+
'''The following is a partial list of the used files, terms and utilities:'''
+
* pcs
+
* crm
+
* crm_mon
+
* crm_verify
+
* crm_simulate
+
* crm_shadow
+
* crm_resource
+
* crm_attribute
+
* crm_node
+
* crm_standby
+
* cibadmin
+
* corosync.conf
+
* authkey
+
* corosync-cfgtool
+
* corosync-cmapctl
+
* corosync-quorumtool
+
* stonith_admin
+
 
<br />
 
<br />
  
====<span style="color:navy">334.4 High Availability in Enterprise Linux Distributions (weight: 1)</span>====
+
====<span style="color:navy">353.2 Packer (weight: 2)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
| style="background:#eaeaea" | 1
+
| style="background:#eaeaea" | 2
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should be aware of how enterprise Linux distributions integrate High Availability technologies.
+
| style="background:#eaeaea" | Candidates should be able to use Packer to create system images. This includes running Packer in various public and private cloud environments as well as building container images for LXC/LXD.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Basic knowledge of Red Hat Enterprise Linux High Availability Add-On.
+
* Understand the functionality and features of Packer
* Basic knowledge of SUSE Linux Enterprise High Availability Extension.
+
* Create and maintain template files
'''The following is a partial list of the used files, terms and utilities:'''
+
* Build images from template files using different builders
* Distribution specific configuration tools
+
'''Partial list of the used files, terms and utilities:'''
* Integration of cluster engines, load balancers, storage technology, cluster filesystems, etc.
+
* packer
 
<br />
 
<br />
  
===''Topic 335: High Availability Cluster Storage''===
+
====<span style="color:navy">353.3 cloud-init (weight: 3)</span>====
====<span style="color:navy">335.1 DRBD / cLVM (weight: 3)</span>====
+
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
Line 281: Line 303:
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates are expected to have the experience and knowledge to install, configure, maintain and troubleshoot DRBD devices. This includes integration with Pacemaker. DRBD configuration of version 8.4.x is covered. Candidates are further expected to be able to manage LVM configuration within a shared storage cluster.
+
| style="background:#eaeaea" | Candidates should able to use cloud-init to configure virtual machines created from standardized images. This includes adjusting virtual machines to match their available hardware resources, specifically, disk space and volumes. Additionally, candidates should be able to configure instances to allow secure SSH logins and install a specific set of software packages. Furthermore, candidates should be able to create new system images with cloud-init support.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Understanding of DRBD resources, states and replication modes.
+
* Understanding the features and concepts of cloud-init, including user-data, initializing and configuring cloud-init
* Configuration of DRBD resources, networking, disks and devices.
+
* Use cloud-init to create, resize and mount file systems, configure user accounts, including login credentials such as SSH keys and install software packages from the distribution’s repository
* Configuration of DRBD automatic recovery and error handling.
+
* Integrate cloud-init into system images
* Management of DRBD using drbdadm.
+
* Use config drive datasource for testing
* Basic knowledge of drbdsetup and drbdmeta.
+
'''Partial list of the used files, terms and utilities:'''
* Integration of DRBD with Pacemaker.
+
* cloud-init
* cLVM
+
* user-data
* Integration of cLVM with Pacemaker.
+
* /var/lib/cloud/
'''The following is a partial list of the used files, terms and utilities:'''
+
* Protocol A, B and C
+
* Primary, Secondary
+
* Three-way replication
+
* drbd kernel module
+
* drbdadm
+
* drbdsetup
+
* drbdmeta
+
* /etc/drbd.conf
+
* /proc/drbd
+
* LVM2
+
* clvmd
+
* vgchange, vgs
+
 
<br />
 
<br />
  
====<span style="color:navy">335.2 Clustered File Systems (weight: 3)</span>====
+
====<span style="color:navy">353.4 Vagrant (weight: 3)</span>====
 
{|
 
{|
 
| style="background:#dadada" | '''Weight'''
 
| style="background:#dadada" | '''Weight'''
Line 313: Line 322:
 
|-
 
|-
 
| style="background:#dadada; padding-right:1em" | '''Description'''
 
| style="background:#dadada; padding-right:1em" | '''Description'''
| style="background:#eaeaea" | Candidates should know how to install, maintain and troubleshoot installations using GFS2 and OCFS2. This includes integration with Pacemaker as well as awareness of other clustered filesystems available in a Linux environment.
+
| style="background:#eaeaea" | Candidate should be able to use Vagrant to manage virtual machines, including provisioning of the virtual machine.
 
|}
 
|}
 
'''Key Knowledge Areas:'''
 
'''Key Knowledge Areas:'''
* Understand the principles of cluster file systems.
+
* Understand Vagrant architecture and concepts, including storage and networking
* Create, maintain and troubleshoot GFS2 file systems in a cluster.
+
* Retrieve and use boxes from Atlas
* Create, maintain and troubleshoot OCFS2 file systems in a cluster.
+
* Create and run Vagrantfiles
* Integration of GFS2 and OCFS2 with Pacemaker.
+
* Access Vagrant virtual machines
* Awareness of the O2CB cluster stack.
+
* Share and synchronize folder between a Vagrant virtual machine and the host system
* Awareness of other commonly used clustered file systems.
+
* Understand Vagrant provisioning, i.e. File and Shell provisioners
'''The following is a partial list of the used files, terms and utilities:'''
+
* Understand multi-machine setup
* Distributed Lock Manager (DLM)
+
'''Partial list of the used files, terms and utilities:'''
* mkfs.gfs2
+
* vagrant
* mount.gfs2
+
* Vagrantfile
* fsck.gfs2
+
<br />
* gfs2_grow
+
* gfs2_edit
+
* gfs2_jadd
+
* mkfs.ocfs2
+
* mount.ocfs2
+
* fsck.ocfs2
+
* tunefs.ocfs2
+
* mounted.ocfs2
+
* o2info
+
* o2image
+
* CephFS
+
* GlusterFS
+
* AFS
+
 
<br />
 
<br />
 
===''Reference Material''===
 
'''Virtualization Theory and Concepts:'''
 
* Xen: http://www.xen.org/support/documentation.html
 
* KVM: http://www.linux-kvm.org/page/Documents
 
* QEMU: http://wiki.qemu.org
 
 
 
'''Load Balancing:'''
 
* LVS: http://www.linuxvirtualserver.org/Documents.html
 
* HAProxy: http://haproxy.1wt.eu/#docs
 
 
 
'''Cluster Management:'''
 
* Pacemaker: http://clusterlabs.org/wiki/Documentation
 
** including: cluster glue, resource agents: http://www.linux-ha.org/wiki/Main_Page
 
* Red Hat Cluster Suite: http://www.redhat.com/docs/manuals/csgfs/
 
** including: OpenAIS/corosync: http://www.corosync.org and http://www.openais.org
 
 
 
'''Cluster Storage:'''
 
* DRBD: http://www.drbd.org/docs/about/
 
* GFS: http://www.redhat.com/docs/manuals/csgfs/
 
* OCFS2: http://oss.oracle.com/projects/ocfs2/documentation/
 
 
 
==Future Change Considerations==
 
 
Future changes to the objective will/may include:
 
 
* Add Bonding / network high availability
 
 
* Cloning Linux, i.e. handling uniqueue properties such as host keys and machine ID
 

Latest revision as of 17:25, 19 April 2021

Introduction

The description of the entire LPIC-3 program is listed here.

Version Information

These objectives are for version 3.0.

This exam results from a split of version 2.0 of the exam 304.

There is also a summary and detailed information on the changes from version 2.0 of exam 304 to 3.0 of these objectives.

The version 2.x objectives can be found here.


Translations of Objectives

The following translations of the objectives are available on this wiki:


Objectives

Topic 351: Full Virtualization

351.1 Virtualization Concepts and Theory (weight: 6)

Weight 6
Description Candidates should know and understand the general concepts, theory and terminology of virtualization. This includes Xen, QEMU and libvirt terminology.

Key Knowledge Areas:

  • Understand virtualization terminology
  • Understand the pros and cons of virtualization
  • Understand the various variations of Hypervisors and Virtual Machine Monitors
  • Understand the major aspects of migrating physical to virtual machines
  • Understand the major aspects of migrating virtual machines between host systems
  • Understand the features and implications of virtualization for a virtual machine, such as snapshotting, pausing, cloning and resource limits
  • Awareness of oVirt, Proxmox, systemd-machined and VirtualBox
  • Awareness of Open vSwitch

The following is a partial list of the used files, terms and utilities:

  • Hypervisor
  • Hardware Virtual Machine (HVM)
  • Paravirtualization (PV)
  • Emulation and Simulation
  • CPU flags
  • /proc/cpuinfo
  • Migration (P2V, V2V)


351.2 Xen (weight: 3)

Weight 3
Description Candidates should be able to install, configure, maintain, migrate and troubleshoot Xen installations. The focus is on Xen version 4.x.

Key Knowledge Areas:

  • Understand architecture of Xen, including networking and storage
  • Basic configuration of Xen nodes and domains
  • Basic management of Xen nodes and domains
  • Basic troubleshooting of Xen installations
  • Awareness of XAPI
  • Awareness of XenStore
  • Awareness of Xen Boot Parameters
  • Awareness of the xm utility

The following is a partial list of the used files, terms and utilities:

  • Domain0 (Dom0), DomainU (DomU)
  • PV-DomU, HVM-DomU
  • /etc/xen/
  • xl
  • xl.cfg
  • xl.conf
  • xentop


351.3 QEMU (weight: 4)

Weight 4
Description Candidates should be able to install, configure, maintain, migrate and troubleshoot QEMU installations.

Key Knowledge Areas:

  • Understand the architecture of QEMU, including KVM, networking and storage
  • Start QEMU instances from the command line
  • Manage snapshots using the QEMU monitor
  • Install the QEMU Guest Agent and VirtIO device drivers
  • Troubleshoot QEMU installations, including networking and storage
  • Awareness of important QEMU configuration parameters

The following is a partial list of the used files, terms and utilities:

  • Kernel modules: kvm, kvm-intel and kvm-amd
  • /dev/kvm
  • QEMU monitor
  • qemu
  • qemu-system-x86_64
  • ip
  • brctl
  • tunctl


351.4 Libvirt Virtual Machine Management (weight: 9)

Weight 9
Description Candidates should be able to manage virtualization hosts and virtual machines (‘libvirt domains’) using libvirt and related tools.

Key Knowledge Areas:

  • Understand the architecture of libvirt
  • Manage libvirt connections and nodes
  • Create and manage QEMU and Xen domains, including snapshots
  • Manage and analyze resource consumption of domains
  • Create and manage storage pools and volumes
  • Create and manage virtual networks
  • Migrate domains between nodes
  • Understand how libvirt interacts with Xen and QEMU
  • Understand how libvirt interacts with network services such as dnsmasq and radvd
  • Understand libvirt XML configuration files
  • Awareness of virtlogd and virtlockd

The following is a partial list of the used files, terms and utilities:

  • libvirtd
  • /etc/libvirt/
  • virsh (including relevant subcommands)


351.5 Virtual Machine Disk Image Management (weight: 3)

Weight 3
Description Candidates should be able to manage virtual machines disk images. This includes converting disk images between various formats and hypervisors and accessing data stored within an image.

Key Knowledge Areas:

  • Understand features of various virtual disk image formats, such as raw images, qcow2 and VMDK
  • Manage virtual machine disk images using qemu-img
  • Mount partitions and access files contained in virtual machine disk images using libguestfish
  • Copy physical disk content to a virtual machine disk image
  • Migrate disk content between various virtual machine disk image formats
  • Awareness of Open Virtualization Format (OVF)

The following is a partial list of the used files, terms and utilities:

  • qemu-img
  • guestfish (including relevant subcommands)
  • guestmount
  • guestumount
  • virt-cat
  • virt-copy-in
  • virt-copy-out
  • virt-diff
  • virt-inspector
  • virt-filesystems
  • virt-rescue
  • virt-df
  • virt-resize
  • virt-sparsify
  • virt-p2v
  • virt-p2v-make-disk
  • virt-v2v
  • virt-sysprep


Topic 352: Container Virtualization

352.1 Container Virtualization Concepts (weight: 7)

Weight 7
Description Candidates should understand the concept of container virtualization. This includes understanding the Linux components used to implement container virtualization as well as using standard Linux tools to troubleshoot these components.

Key Knowledge Areas:

  • Understand the concepts of system and application container
  • Understand and analyze kernel namespaces
  • Understand and analyze control groups
  • Understand and analyze capabilities
  • Understand the role of seccomp, SELinux and AppArmor for container virtualization
  • Understand how LXC and Docker leverage namespaces, cgroups, capabilities, seccomp and MAC
  • Understand the principle of runc
  • Understand the principle of CRI-O and containerd
  • Awareness of the OCI runtime and image specifications
  • Awareness of the Kubernetes Container Runtime Interface (CRI)
  • Awareness of podman, buildah and skopeo
  • Awareness of other container virtualization approaches in Linux and other free operating systems, such as rkt, OpenVZ, systemd-nspawn or BSD Jails

The following is a partial list of the used files, terms and utilities:

  • nsenter
  • unshare
  • ip (including relevant subcommands)
  • capsh
  • /sys/fs/cgroups
  • /proc/[0-9]+/ns
  • /proc/[0-9]+/status


352.2 LXC (weight: 6)

Weight 6
Description Candidates should be able to use system containers using LXC and LXD. The version of LXC covered is 3.0 or higher.

Key Knowledge Areas:

  • Understand the architecture of LXC and LXD
  • Manage LXC containers based on existing images using LXD, including networking and storage
  • Configure LXC container properties
  • Limit LXC container resource usage
  • Use LXD profiles
  • Understand LXC images
  • Awareness of traditional LXC tools

Partial list of the used files, terms and utilities:

  • lxd
  • lxc (including relevant subcommands)


352.3 Docker (weight: 9)

Weight 9
Description Candidate should be able to manage Docker nodes and Docker containers. This include understand the architecture of Docker as well as understanding how Docker interacts with the node’s Linux system.

Key Knowledge Areas:

  • Understand the architecture and components of Docker
  • Manage Docker containers by using images from a Docker registry
  • Understand and manage images and volumes for Docker containers
  • Understand and manage logging for Docker containers
  • Understand and manage networking for Docker
  • Use Dockerfiles to create container images
  • Run a Docker registry using the registry Docker image

Partial list of the used files, terms and utilities:

  • dockerd
  • /etc/docker/daemon.json
  • /var/lib/docker/
  • docker
  • Dockerfile


352.4 Container Orchestration Platforms (weight: 3)

Weight 3
Description Candidates should understand the importance of container orchestration and the key concepts Docker Swarm and Kubernetes provide to implement container orchestration.

Key Knowledge Areas:

  • Understand the relevance of container orchestration
  • Understand the key concepts of Docker Compose and Docker Swarm
  • Understand the key concepts of Kubernetes and Helm
  • Awareness of OpenShift, Rancher and Mesosphere DC/OS



Topic 353: VM Deployment and Provisioning

353.1 Cloud Management Tools (weight: 2)

Weight 2
Description Candidates should understand common offerings in public clouds and have basic feature knowledge of commonly available cloud management tools.

Key Knowledge Areas:

  • Understand common offerings in public clouds
  • Basic feature knowledge of OpenStack
  • Basic feature knowledge of Terraform
  • Awareness of CloudStack, Eucalyptus and OpenNebula

Partial list of the used files, terms and utilities:

  • IaaS, PaaS, SaaS
  • OpenStack
  • Terraform


353.2 Packer (weight: 2)

Weight 2
Description Candidates should be able to use Packer to create system images. This includes running Packer in various public and private cloud environments as well as building container images for LXC/LXD.

Key Knowledge Areas:

  • Understand the functionality and features of Packer
  • Create and maintain template files
  • Build images from template files using different builders

Partial list of the used files, terms and utilities:

  • packer


353.3 cloud-init (weight: 3)

Weight 3
Description Candidates should able to use cloud-init to configure virtual machines created from standardized images. This includes adjusting virtual machines to match their available hardware resources, specifically, disk space and volumes. Additionally, candidates should be able to configure instances to allow secure SSH logins and install a specific set of software packages. Furthermore, candidates should be able to create new system images with cloud-init support.

Key Knowledge Areas:

  • Understanding the features and concepts of cloud-init, including user-data, initializing and configuring cloud-init
  • Use cloud-init to create, resize and mount file systems, configure user accounts, including login credentials such as SSH keys and install software packages from the distribution’s repository
  • Integrate cloud-init into system images
  • Use config drive datasource for testing

Partial list of the used files, terms and utilities:

  • cloud-init
  • user-data
  • /var/lib/cloud/


353.4 Vagrant (weight: 3)

Weight 3
Description Candidate should be able to use Vagrant to manage virtual machines, including provisioning of the virtual machine.

Key Knowledge Areas:

  • Understand Vagrant architecture and concepts, including storage and networking
  • Retrieve and use boxes from Atlas
  • Create and run Vagrantfiles
  • Access Vagrant virtual machines
  • Share and synchronize folder between a Vagrant virtual machine and the host system
  • Understand Vagrant provisioning, i.e. File and Shell provisioners
  • Understand multi-machine setup

Partial list of the used files, terms and utilities:

  • vagrant
  • Vagrantfile