Ubuntu Server Guide Changes, errors and bugs


Download 1.27 Mb.
Pdf ko'rish
bet29/37
Sana09.10.2020
Hajmi1.27 Mb.
#132985
1   ...   25   26   27   28   29   30   31   32   ...   37
Bog'liq
ubuntu-server-guide


Implementation
Web Servers are heavily used in the deployment of Web sites and in this scenario we can use two different
implementations:
• Static Web Server: The content of the server’s response will be the hosted files “as-is”.
• Dynamic Web Server: Consist in a Web Server plus an extra software, usually an application server
and a database. For example, to produce the Web pages you see in the Web browser, the application
server might fill an HTML template with contents from a database. Due to that we say that the
content of the server’s response is generated dynamically.
Introduction to High Availability
A definition of High Availability Clusters from Wikipedia:
High Availability Clusters
High-availability clusters (also known as HA clusters fail-over clusters or Metroclus-
ters Active/Active ) are groups of computers that support server applications that can be
reliably utilized with a minimum amount of down-time.
They operate by using high availability software to harness redundant computers in groups or
clusters that provide continued service when system components fail.
Without clustering, if a server running a particular application crashes, the application will be
unavailable until the crashed server is fixed. HA clustering remedies this situation by detecting
hardware/software faults, and immediately restarting the application on another system without
requiring administrative intervention, a process known as failover.
As part of this process, clustering software may configure the node before starting the application
on it. For example, appropriate file systems may need to be imported and mounted, network
hardware may have to be configured, and some supporting applications may need to be running
as well.
HA clusters are often used for critical databases, file sharing on a network, business applications,
and customer services such as electronic commerce websites.
High Availability Cluster Heartbeat
HA cluster implementations attempt to build redundancy into a cluster to eliminate single points
of failure, including multiple network connections and data storage which is redundantly con-
nected via storage area networks.
HA clusters usually use a heartbeat private network connection which is used to monitor the
health and status of each node in the cluster. One subtle but serious condition all clustering
268

software must be able to handle is split-brain, which occurs when all of the private links go down
simultaneously, but the cluster nodes are still running.
If that happens, each node in the cluster may mistakenly decide that every other node has gone
down and attempt to start services that other nodes are still running. Having duplicate instances
of services may cause data corruption on the shared storage.
High Availability Cluster Quorum
HA clusters often also use quorum witness storage (local or cloud) to avoid this scenario. A
witness device cannot be shared between two halves of a split cluster, so in the event that all
cluster members cannot communicate with each other (e.g., failed heartbeat), if a member cannot
access the witness, it cannot become active.
Example
2nodeHAcluster|578x674,75%
Fencing
Fencing protects your data from being corrupted, and your application from becoming unavailable, due to
unintended concurrent access by rogue nodes.
Just because a node is unresponsive doesn’t mean it has stopped accessing your data. The only way to be
100% sure that your data is safe, is to use fencing to ensure that the node is truly offline before allowing the
data to be accessed from another node.
Fencing also has a role to play in the event that a clustered service cannot be stopped. In this case, the
cluster uses fencing to force the whole node offline, thereby making it safe to start the service elsewhere.
Fencing is also known as STONITH, an acronym for “Shoot The Other Node In The Head”, since the most
popular form of fencing is cutting a host’s power.
Key Benefits:
• Active countermeasure taken by a functioning host to isolate a misbehaving (usually dead) host from
shared data.
• MOST CRITICAL part of a cluster utilizing SAN or other shared storage technology (Ubuntu HA
Clusters can only be supported if the fencing mechanism is configured).
• Required by OCFS2, GFS2, cLVMd (before Ubuntu 20.04), lvmlockd (from 20.04 and beyond).
Linux High Availability Projects
There are many upstream high availability related projects that are included in Ubuntu Linux. This section
will describe the most important ones.
The following packages are present in latest Ubuntu LTS release:
Ubuntu HA Core Packages
Packages in this list are supported just like any other package available in main repository would be.
269

Package
URL
libqb
Ubuntu | Upstream
kronosnet
Ubuntu | Upstream
corosync
Ubuntu | Upstream
pacemaker
Ubuntu | Upstream
resource-agents
Ubuntu | Upstream
fence-agents
Ubuntu | Upstream
crmsh
Ubuntu | Upstream
cluster-glue
Ubuntu | Upstream
drbd-utils
Ubuntu | Upstream
dlm
Ubuntu | Upstream
gfs2-utils
Ubuntu | Upstream
keepalived
Ubuntu | Upstream
• Kronosnet - Kronosnet, often referred to as knet, is a network abstraction layer designed for High
Availability. Corosync uses Kronosnet to provide multiple networks for its interconnect (replacing the
old Totem Redundant Ring Protocol) and add support for some more features like interconnect network
hot-plug.
• Corosync - or Cluster Membership Layer, provides reliable messaging, membership and quorum in-
formation about the cluster. Currently, Pacemaker supports Corosync as this layer.
• Resource Agents - Scripts or operating system components that start, stop or monitor resources,
given a set of resource parameters. These provide a uniform interface between pacemaker and the
managed services.
• Fence Agents - Scripts that execute node fencing actions, given a target and fence device parameters.
• Pacemaker - or Cluster Resource Manager, provides the brain that processes and reacts to events
that occur in the cluster. Events might be: nodes joining or leaving the cluster, resource events caused
by failures, maintenance, or scheduled activities. To achieve the desired availability, Pacemaker may
start and stop resources and fence nodes.
• DRBD - Distributed Replicated Block Device, DRBD is a distributed replicated storage system for
the Linuxplatform. It is implemented as a kernel driver, several userspace management applications,
and some shell scripts. DRBD is traditionally used in high availability (HA) clusters.
• DLM - A distributed lock manager (DLM) runs in every machine in a cluster, with an identical copy
of a cluster-wide lock database. In this way DLM provides software applications which are distributed
across a cluster on multiple machines with a means to synchronize their accesses to shared resources.
• Keepalived - Keepalived provides simple and robust facilities for loadbalancing and high-availability
to Linux system and Linux based infrastructures. Loadbalancing framework relies on well-known and
widely used Linux Virtual Server (IPVS) kernel module providing Layer4 loadbalancing. Keepalived
implements a set of checkers to dynamically and adaptively maintain and manage loadbalanced server
pool according their health. On the other hand high-availability is achieved by VRRP protocol.
Ubuntu HA Community Packages
Packages in this list are supported just like any other package available in [universe] repository would be.
Package
URL
pcs*
Ubuntu | Upstream
csync2
Ubuntu | Upstream
corosync-qdevice
Ubuntu | Upstream
270

Package
URL
fence-virt
Ubuntu | Upstream
sbd
Ubuntu | Upstream
booth
Ubuntu | Upstream
• Corosync-Qdevice - Its primary use is for even-node clusters, operates at corosync (quorum) layer.
Corosync-Qdevice is an independent arbiter for solving split-brain situations. (qdevice-net supports
multiple algorithms).
• SBD - STONITH Block Device can be particularly useful in environments where traditional fencing
mechanisms are not possible. SBD integrates with Pacemaker, a watchdog device and shared storage
to arrange for nodes to reliably self-terminate when fencing is required.
Note: pcs will likely replace crmsh in main repository in future Ubuntu versions.
Ubuntu HA Deprecated Packages
Packages in this list are only supported by the upstream community . All bugs opened against these
agents will be forwarded to upstream IF makes sense (affected version is close to upstream).
Package
URL
ocfs2-tools
Ubuntu | Upstream
Ubuntu HA Related Packages
Packages in this list aren’t necessarily HA related packages, but they have a very important role in High
Availability Clusters and are supported like any other package provide by the main repository.
Package
URL
multipath-tools
Ubuntu | Upstream
open-iscsi
Ubuntu | Upstream
sg3-utils
Ubuntu | Upstream
tgt OR targetcli-fb*
Ubuntu | Upstream
lvm2
Ubuntu | Upstream
• LVM2 in a Shared-Storage Cluster Scenario: CLVM - supported before Ubuntu 20.04 A distributed
lock manager (DLM) is used to broker concurrent LVM metadata accesses. Whenever a cluster node
needs to modify the LVM metadata, it must secure permission from its local clvmd , which is in
constant contact with other clvmd daemons in the cluster and can communicate a desire to get a lock
on a particular set of objects. lvmlockd - supported after Ubuntu 20.04 As of 2017, a stable LVM
component that is designed to replace clvmd by making the locking of LVM objects transparent to the
rest of LVM, without relying on a distributed lock manager. The lvmlockd benefits over clvm are:
– lvmlockd supports two cluster locking plugins: DLM and SANLOCK. SANLOCK plugin can
supports up to ~2000 nodes that benefits LVM usage in big virtualization / storage cluster, while
DLM plugin fits HA cluster.
– lvmlockd has better design than clvmd. clvmd is command-line level based locking system, which
means the whole LVM software will get hang if any LVM command gets dead-locking issue.
– lvmlockd can work with lvmetad.
Note: targetcli-fb (Linux LIO) will likely replace tgt in future Ubuntu versions.
271

Upstream Documentation
The server guide does not have the intent to document every existing option for all the HA related softwares
described in this page, but to document recommended scenarios for Ubuntu HA Clusters. You will find more
complete documentation upstream at:
• ClusterLabs
– Clusters From Scratch
– Managing Pacemaker Clusters
– Pacemaker Configuration Explained
– Pacemaker Remote - Scaling HA Clusters
• Other
– Ubuntu Bionic HA in Shared Disk Environments (Azure)
A very special thanks, and all the credits, to ClusterLabs Project for all that detailed documen-
tation.
429 from API, waiting 5 seconds … (‘You’ve performed this action too many times. Please wait
a few seconds before trying again.’) # Ubuntu HA - Pacemaker Resource Agents Supportability
After discussions among Ubuntu Developers, it was decided that Ubuntu project should focus in splitting
all existing Pacemaker Resource Agents into different categories:
• Resource Agents: main
• Resource Agents: [universe]
• Resource Agents: [universe]-community
• Resource Agents: [non-supported]
• Resource Agents: [deprecated]
Note: There is a current plan to split resource agents into different packages so supported agents
can be installed independently.
Resource Agents: main
Agents in this list are supported just like any other package available in main repository would be.
|
RESOURCE AGENT
|
RESOURCE AGENT DESCRIPTION
| |
SUPPORT AGENTS
|Delay|test resource for introducing delay| |MailTo|sends email to a sysadmin whenever a takeover occurs|
|ClusterMon|runs crm_mon to a html page from time to time| |HealthCPU|measures CPU idling and up-
dates #health-cpu attr| |HealthIOWait|measures CPU idling and updates #health-iowait attr| |HealthS-
MART|measures CPU idling and updates #health-smart attr| ||
SERVICES (OCF, Systemd, SysV)
| |apache|apache web server instance| |dovecot|dovecot IMAP/POP3 server instance| |dhcpd|chrooted ISC
dhcp server instance| |mysql|MySQL instance| |mysql-proxy|MySQL proxy instance| |pgsql|pgsql database
instance| |named|bind/named server instance| |nfsnotify|nfs sm-notify reboot notifications daemon| |nf-
272

sserver|nfs server resource| |exportfs|nfs exports (not the nfs server)| |nginx|Nginx web/proxy server instance|
|postfix|postfix mail server instance| |rabbitmq-cluster|cloned rabbitmq cluster instance| |remote|pacemaker
remote resource agent| |rsyncd|rsyncd instance| |rsyslog|rsyslogd instance| |slapd|stand-alone LDAP daemon
instance| |Squid|squid proxy server instance| |vsftpd|vsftpd server instance| | |
STORAGE
|Raid1|software RAID (MD) devices on shared storage| |iscsi|local iscsi initiator and its conns to targets|
|iSCSILogicalUnit|iSCSI logical units| |iSCSITarget|iSCSI target export agent (implementation: tgt / lio)|
|LVM|LVM volume as an HA resource| |LVM-activate|LVM activation/deact work for VGs (lvmlockd+LVM-
activate OR clvm+LVM-activate)| |Filesystem|filesystem on a shared storage medium| |symlink|symbolic
link| |ZFS|ZFS pools import/export| ||
LOCKING & RESERVATIONS
|controld|distributed lock manager for clustered FSs| |clvm|clvmd daemon (cluster logical vol manager)|
|lvmlockd|agent manages the lvmlockd daemon.| |mpathpersist|SCSI persistent reservations on mpath devs|
|sg_persist|master/slave resource for SCSI3 reservations| ||
NETWORKING
|Route|network routes| |iface-bridge|bridge network interfaces| |iface-vlan|vlan network interfaces|
|IPaddr2|virtual IPv4 and IPv6 addresses| |ipsec|ipsec tunnels for VIPs| |IPsrcaddr|preferred source
address modification| |IPv6addr|IPv6 aliases| |conntrackd|conntrackd instance| |SendArp|send gratuitous
ARP for IP address| |VIPArip|virtual IP address through RIP2| |ifspeed|monitor action runs -> updates
CIB with if speed| ||
VIRTUALIZATION
|VirtualDomain|manages virtual domains through libvirt (virtual machine only)| ||
CONTAINERS
|lxc|allows LXC containers to be managed by the cluster|
Resource Agents: [universe]
Agents in this list are supported just like any other package available in [universe] repository would be.
RESOURCE AGENT
RESOURCE AGENT DESCRIPTION
||
SUPPORT AGENTS
|anything|generic agent to manage virtually anything| |Dummy|testing dummy resource agent (template for
RA writers)| |AudibleAlarm|audible beeps at interval| |Stateful|example agent that supports two states|
|WinPopup|sends a SMB notification msg (popup) to a host| ||
SERVICES
|asterisk|asterisk PBX| |CTDB|clustered samba (for needed clustered underlying)| |dnsupdate|ip take-over via
dynamic dns updates| |fio|fio instance| |galera|galera instance| |garbd|galera arbitrator instance| |jboss|JBoss
application server instance| |jira|JIRA server instance| |kamailio|kamailio SIP proxy/registrar instance| |mari-
adb|MariaDB master/slave instance| |nagios|nagios instance| |ovsmonitor|clone resource to monitor net-
work bonds on diff nodes| |pgagent|pgagent instance| |pound|pound reverse proxy load-bal server instance|
|proftpd|proftpd instance| |Pure-FTPd|pure-ftpd instance| |redis|redis server (supports master/slave repli-
cas)| |syslog-ng|syslog-ng instance| |tomcat|tomcat servlet environment instance| |varnish|varnish instance|
273

||
STORAGE
|AoEtarget|ata over ethernet| ||
NETWORKING
|IPaddr|virtual IPv4 addresses| |ocf:pacemaker:ping|records in CIB number of nodes host can connect to|
|portblock|temporarily block/unblock access to tcp/udp ports| ||
OPENSTACK
|openstack-cinder-volume|attach cinder vol to an instance (os-info <->)| |openstack-floating-ip|move a float-
ing IP from an instance to another| ||
VIRTUALIZATION
|Xen|xen unprivileged domains| ||
REGISTRATION (CIB)
|lxd-info|nr of lxd containers running in CIB| |machine-info|records various node attributes in CIB| |NodeU-
tilization|cpu / host mem / hypervisor mem etc… into CIB| |openstack-info|records attributes of a node
into CIB| |SysInfo|records various node attributes into CIB| |SystemHealth|monitors health of system using
IPMI| |attribute|sets node attr one way when started and vice-versa|
Resource Agents: [universe]-community
Agents in this list are only supported by the upstream community. All bugs opened against these
agents will be forwarded to upstream IF makes sense (affected version is close to upstream).
RESOURCE AGENT
RESOURCE AGENT DESCRIPTION
||
SERVICES
|SphinxSearchDaemon|sphix search daemon| |Xinetd|start/stop services managed by xinetd| |zab-
bixserver|zabbix server instance| ||
STORAGE
|o2cb|oracle cluster filesystem userspace daemon (oracle)| |sfex|excl access to shared storage using SF-EX| ||
VIRTUALIZATION
|aliyun-vpc-move-ip|move ip within a vpc of the aliyum ecs (alibaba)| |awseip|manages aws elastic IP address
(aws)| |awsvip|manages aws secondary private ip addresses (aws)| |aws-vpc-move-ip|move ip within a vpc of
the aws ec2 (aws)| |aws-vpc-route53|update route53 vpc record for aws ec2 (aws)| |azure-events|monitor for
scheduled events for azure vm (azure)| |azure-lb|answers azure load balancer health probe req (azure)| |gcp-
vpc-move-ip|floating ip address within a GCP VPC (google)| |ManageVE|openVZ virtual environment (vir-
tuozzo)| |minio|minio server instance| |podman|creates/launches podman containers| |rkt|creates/launches
container based on supplied image| ||
CONTAINERS
|docker|docker container resource agent|
274

Resource Agents: [non-supported]
Agents in this list are NOT supported in Ubuntu and might be removed in future Ubuntu HA versions.
RESOURCE AGENT
RESOURCE AGENT DESCRIPTION
||
UNSUPPORTED
|db2|manages IBM DB2 LUW databases (IBM)| |eDir88|Novell eDirectory directory server instance (nov-
ell)| |ICP|ICP vortex clustered host drive (intel)| |ids|IBM informix dynamic server (IDS) (IBM)| |SAP-
Database|SAP database (of any type) instance agent (SAP)| |SAPInstance|SAP application server instances
agent (SAP)| |ServeRAID|enables/disables shared serveRAID merge groups (IBM)| |ManageRAID|raid de-
vices (/etc/conf.d/HB-ManageRAID)| |oraasm|oracle asm agent / uses ohasd for asm disk grp (oracle)| |ora-
cle|oracle database instance (oracle)| |oralsnr|oracle TNS listener (oracle)| |sybaseASE|sybase ASE failover in-
stance (Sybase)| |vdo-vol|https://bugs.launchpad.net/ubuntu/+bug/1869825| |WAS|websphere application
server instance (IBM)| |WAS6|websphere application server instance (IBM)|
Resource Agents: [deprecated]
Agents in this list are NOT supported in Ubuntu OR Upstream (due to being deprecated in favor of other
agents) and might be removed in future Ubuntu HA versions.
RESOURCE AGENT
RESOURCE AGENT DESCRIPTION
||
DEPRECATED
|Evmsd|clustered evms vol mgmt (evms is not maintained)| |EvmsSCC|clustered evms vol mgmt (evms is
not maintained)| |LinuxSCSI|enables/disables scsi devs through kernel scsi hotplug| |scsi2reservation|SCSI-
2 reservation agent (depends on scsi_reserve)| |ocf:heartbeat:pingd|monitors connectivity to specific hosts|
|ocf:pacemaker:pingd|replaced by pacemaker:ping (this is broken)| |vmware|control vmware server 2.0 virtual
machines (2009)|
Ubuntu HA - Pacemaker Fence Agents Supportability
After discussions among Ubuntu Developers, it was decided that Ubuntu project should focus in splitting
all existing Pacemaker Fence Agents into different categories:
• Fence Agents: main
• Fence Agents: [universe]
• Fence Agents: [universe]-community
• Fence Agents: [non-supported]
• Fence Agents: [deprecated]
Note: There is a current plan to split fence agents into different packages so supported agents
can be installed independently.
275

Fence Agents: main
Agents in this list are supported just like any other package available in main repository would be.
FENCE AGENT
FENCE AGENT DESCRIPTION
EXTRA DESCRIPTION
||
POWER FENCING AGENTS|| |fence_ipmilan|IPMI controlled machines|| |fence_ilo3|symlink to
fence_ipmilan|| |fence_ilo4|symlink to fence_ipmilan|| |fence_ilo5|symlink to fence_ipmilan|| |fence_imm|symlink
to fence_ipmilan|| |fence_idrac|symlink to fence_ipmilan|| ||
STORAGE FENCING AGENTS|| |fence_mpath|SCSI-3 persistent reservations to control mpath devs||
|fence_sbd|SBD (shared storage) fencing|| |fence_scsi|SCSI-3 persistent reservations|| ||
VIRTUALIZATION FENCING AGENTS|| |fence_virsh|Libvirt managed virtual machines||
Fence Agents: [universe]
Agents in this list are supported just like any other package available in [universe] repository would be.
FENCE AGENT
FENCE AGENT DESCRIPTION
EXTRA DESCRIPTION
||
GENERIC AGENTS|| |fence_dummy|dummy fence agent (for testing)|| |fence_ack_manual|override
fencing operations manually|| |fence_kdump|kdump crash recovery service (acks being in kdump)||
|fence_kdump_send|-|acks entered kdump crash recovery service (tool)| ||
POWER FENCING AGENTS|| |fence_amt|Intel AMT|| |fence_intelmodular|Intel Modular device
(Intel MFSYS25, MFSYS35)|| |fence_ilo|HP servers with iLO|| |fence_ilo2|-|symlink to fence_ilo|
|fence_ilo_ssh|HP iLO devices through ssh|| |fence_ilo3_ssh|-|symlink to fence_ilo_ssh| |fence_ilo4_ssh|-
|symlink to fence_ilo_ssh| |fence_ilo5_ssh|-|symlink to fence_ilo_ssh| |fence_ilo_moonshot|HP Moon-
shot iLO|| |fence_ilo_mp|HP iLO MP|| |fence_hpblade|HP BladeSystem and HP Integrity Super-
dome X|| |fence_cisco_ucs|Cisco UCS (fence machines)|| |fence_alom|Sun Microsystems ALOM||
|fence_bladecenter|IBM
BladeCenter
(w/
telnet/ssh
support)||
|fence_ipdu|IBM
iPDU
(network
power switch) over SNMP|| |fence_lpar|IBM LPARs (using HMC)|| |fence_ibmblade|IBM BladeCen-
ter over SNMP|| |fence_rsa|IBM RSA II management interface|| |fence_drac|Dell remote access card||
|fence_drac5|Dell remote access card v5 or CMC (DRAC)|| |fence_hds_cb|Hitachi Compute Blade systems||
|fence_rsb|Fujitsu-Siemens RSB management interface|| ||
NETWORK FENCING AGENTS|| |fence_heuristics_ping|uses ping-heuristics to exec other fence in same
level|| |fence_ifmib|Any SNMP IF-MIB device (ethernet switches w/ iSCSI)|| ||
STORAGE FENCING AGENTS|| |fence_cisco_mds|Cisco MDS 9000 w/ SNMP enabled|| |fence_sanbox2|QLogic
SANBox2 FC switches|| |fence_brocade|Brocade FC switches (disables specified port)|| ||
VIRTUALIZATION
FENCING
AGENTS||
|fence_vmware|VMware
ESX|ESXi
virtual
machines|
|fence_vmware_rest|VMware virtual machines (w/ VMware API)|| |fence_vmware_soap|VMware vir-
tual machines (w/ SOAP API v4.1+)|| |fence_vmware_vcloud|VMware virtual machines on VMware
vCloud Director API|| ||
CLOUD FENCING AGENTS|| |fence_aws|AWS (boto3 library)|| |fence_azure_arm|Azure Resource
Manager (Azure SDK for Python)|| |fence_compute|OpenStack Nova|| |fence_evacuate|OpenStack Nova||
276

|fence_openstack|Fence OpenStack’s Nova (w/ python-novaclient)|| |fence_gce|Google Cloud Engine
(googleapiclient lib)|| ||
CONTAINERS FENCING AGENTS|| |fence_docker|Docker engine containers||
Download 1.27 Mb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   37




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling