{"id":1413,"date":"2024-08-04T05:00:00","date_gmt":"2024-08-04T03:00:00","guid":{"rendered":"https:\/\/hostup.se\/blogg\/?p=1413"},"modified":"2025-03-14T22:35:55","modified_gmt":"2025-03-14T21:35:55","slug":"byggandet-av-en-stabil-molntjanst-redundans","status":"publish","type":"post","link":"https:\/\/hostup.se\/blogg\/byggandet-av-en-stabil-molntjanst-redundans\/","title":{"rendered":"Byggandet av en stabil molntj\u00e4nst &#8211; redundans"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/hostup.se\/blogg\/wp-content\/uploads\/2024\/08\/Redundans-mellan-servers-1-1024x1024.png\" alt=\"\" class=\"wp-image-1417\" srcset=\"https:\/\/hostup.se\/blogg\/wp-content\/uploads\/2024\/08\/Redundans-mellan-servers-1-1024x1024.png 1024w, https:\/\/hostup.se\/blogg\/wp-content\/uploads\/2024\/08\/Redundans-mellan-servers-1-300x300.png 300w, https:\/\/hostup.se\/blogg\/wp-content\/uploads\/2024\/08\/Redundans-mellan-servers-1-150x150.png 150w, https:\/\/hostup.se\/blogg\/wp-content\/uploads\/2024\/08\/Redundans-mellan-servers-1-768x768.png 768w, https:\/\/hostup.se\/blogg\/wp-content\/uploads\/2024\/08\/Redundans-mellan-servers-1.png 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>N\u00e4r det kommer till att bygga molninfrastruktur s\u00e5 \u00e4r stabilitet alltid #1 prioritering. Med stabilitet menar jag att tj\u00e4nsten alltid ska vara tillg\u00e4nglig.<\/p>\n\n\n\n<p>Tidigare har detta skett p\u00e5 server niv\u00e5. I en server finns olika komponenter. M\u00e5nga av dessa komponenter g\u00e5r att g\u00f6ra redundanta i den mening att man har tv\u00e5 n\u00e4taggregat s\u00e5 om ett g\u00e5r s\u00f6nder fungerar fortfarande server utan avbrott. Man brukar ocks\u00e5 ha tv\u00e5 eller fler lagringsenheter i RAID som replikerar data mellan lagringsenheterna. Om en lagringsenhet g\u00e5r s\u00f6nder fungerar fortfarande allt som t\u00e4nkt.<\/p>\n\n\n\n<p>Problemet \u00e4r att man bara kan g\u00f6ra s\u00e5 m\u00e5nga komponenter redundanta. Det g\u00e5r till exempelvis inte att g\u00f6ra sj\u00e4lvaste moderkortet eller CPU redundant s\u00e5 om det g\u00e5r s\u00f6nder g\u00e5r server ned. Man kan uppskatta en <a href=\"https:\/\/www.quora.com\/How-common-are-hardware-failure-on-enterprise-servers-in-a-data-center\" target=\"_blank\" rel=\"noopener\">2-5% risk<\/a> att n\u00e5gon s\u00e5dan komponent g\u00e5r s\u00f6nder per \u00e5r. Det kanske inte l\u00e5ter mycket men vi p\u00e5 hostup har helrack som kan fylla 42 st servrar. Med s\u00e5 pass m\u00e5nga servrar \u00e4r det i princip garanterat att n\u00e5gon server kommer f\u00e5 problem n\u00e5gon g\u00e5ng under \u00e5ret som p\u00e5verkar n\u00e5gon enstaka kund.<\/p>\n\n\n\n<p>N\u00e4r saker g\u00e5r ned orsakar det inte bara problem f\u00f6r v\u00e5ra kunder utan ocks\u00e5 problem f\u00f6r oss. Tekniker m\u00e5ste fels\u00f6ka och \u00e5tg\u00e4rda problemet direkt oavsett om det \u00e4r mitt i natten eller p\u00e5 en helgdag.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Losningen_%E2%80%93_redundans_pa_serverniva\"><\/span>L\u00f6sningen &#8211; redundans p\u00e5 serverniv\u00e5<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Eftersom vi vet att servrar kommer g\u00e5 s\u00f6nder f\u00f6rr eller senare s\u00e5 \u00e4r v\u00e5r l\u00f6sning att f\u00e5 redundans p\u00e5 serverniv\u00e5. Med detta menar vi att om en eller flera server g\u00e5r s\u00f6nder samtidigt s\u00e5 ska saker fortfarande fungera som det ska.<\/p>\n\n\n\n<p>Vi uppn\u00e5r detta genom att anv\u00e4nda oss av Ceph Replication 3. Ceph \u00e4r lagring \u00f6ver n\u00e4tverket och Replication <strong>3<\/strong> betyder att din data replikeras till 3 olika servers. Det fungerar lite som RAID-1 men ist\u00e4llet f\u00f6r att replikera det tv\u00e5 g\u00e5nger replikeras det 3 g\u00e5nger. \u00c4ven om tv\u00e5 servers g\u00e5r s\u00f6nder samtidigt \u00e4r all data fortfarande \u00e4r tillg\u00e4nglig. Skillnaden \u00e4r bara att detta \u00e4r p\u00e5 serverniv\u00e5. Tv\u00e5 hela servers kan g\u00e5 s\u00f6nder eller tas ned f\u00f6r underh\u00e5ll medan allt fortfarande fungerar som det ska.<\/p>\n\n\n\n<p>Detta eliminerar inte bara risken n\u00e4stan f\u00f6r nertid hos v\u00e5ra kunder utan g\u00f6r det ocks\u00e5 s\u00e5 att v\u00e5ra tekniker kan \u00e5tg\u00e4rda eventuella problem p\u00e5 kontorstid.<\/p>\n\n\n\n<p>Dessutom f\u00e5r vi med Ceph hotspare. Om en server g\u00e5r ned byggs redundansen upp igen till att klara av att ytterligare tv\u00e5 servers ska g\u00e5 ned inom n\u00e5gra timmar. V\u00e5r servers anv\u00e4nder sig av 100G anslutningar och endast NVMe s\u00e5 det g\u00e5r riktigt snabbt!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Redundans_pa_natverksniva\"><\/span>Redundans p\u00e5 n\u00e4tverksniv\u00e5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Att ha redundans p\u00e5 serverniv\u00e5 \u00e4r bra, men sj\u00e4lvklart m\u00e5ste allt annat ocks\u00e5 bli redundant. Saker g\u00e5r s\u00f6nder och det \u00e4r bara att acceptera.<\/p>\n\n\n\n<p>V\u00e5rt n\u00e4tverk har numera redundant gateway. Vi f\u00e5r detta genom att ha 3 n\u00e4tverksswitchar i <a href=\"https:\/\/www.cisco.com\/c\/en\/us\/support\/docs\/ios-nx-os-software\/nx-os-software\/217274-understand-virtual-port-channel-vpc-en.html\" target=\"_blank\" rel=\"noopener\">vPC<\/a>. Det \u00e4r en slags teknik vilket till\u00e5ter tv\u00e5 av dem att g\u00e5 s\u00f6nder medan allt fortfarande fungerar som det ska.<\/p>\n\n\n\n<p>Ena switchen \u00e4r en 100G switch som fungerar som primary (bond1). De tv\u00e5 andra \u00e4r 25 GbE switchar i LACP l\u00e4ge (bond0). H\u00e4r g\u00e5r den publika trafiken men i fall Ceph switchen skulle g\u00e5 s\u00f6nder kan trafiken g\u00e5 genom dessa ocks\u00e5, isolerade p\u00e5 sitt egna vlan s\u00e5 klart!<\/p>\n\n\n\n<p>Varje switch \u00e4r dessutom uppkopplad mot <a href=\"https:\/\/bgp.tools\/as\/214640#connectivity\" target=\"_blank\" rel=\"noopener\">4 olika internetleverant\u00f6rer<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u00e4r det kommer till att bygga molninfrastruktur s\u00e5 \u00e4r stabilitet alltid #1 prioritering. Med stabilitet menar jag att tj\u00e4nsten alltid ska vara tillg\u00e4nglig. Tidigare har detta skett p\u00e5 server niv\u00e5. I en server finns olika komponenter. M\u00e5nga av dessa komponenter g\u00e5r att g\u00f6ra redundanta i den mening att man har tv\u00e5 n\u00e4taggregat s\u00e5 om ett [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1415,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1413","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-om"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/posts\/1413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/comments?post=1413"}],"version-history":[{"count":4,"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/posts\/1413\/revisions"}],"predecessor-version":[{"id":1513,"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/posts\/1413\/revisions\/1513"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/media\/1415"}],"wp:attachment":[{"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/media?parent=1413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/categories?post=1413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hostup.se\/blogg\/wp-json\/wp\/v2\/tags?post=1413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}