29.12.2012

Exchange ESE, osa 3


TRANSAKTIO


Johdanto
Ensinmäisessä artikkelissa on mainittu keskeiset lähteet ESE:en liittyen. Varsinaiset artikkelit ovat hyvin niukkasanaisia, mutta mainitut kaksi esitystä selvittävät jonkin verran asiaa syvemmältä. Tosin allekirjoittaneelle niistä herää lähinnä lisää kysymyksiä.

Transaktio
Transaktio on yksinkertaisuudessa toimenpide tai sarja toimenpiteitä (transactions), joilla muokataan fyysistä tietokantaa ts. tehdään muutoksia tietokantasivuihin (page). Tärkeimpiä toimenpiteitä ovat:

  • Insert - Lisätään tauluun uusi tieto esim. viesti.
  • Replace - Päivitetään olemassa oleva tieto esim. kansion viestien määrä.
  • Delete - Poistetaan olemassa oleva tieto esim. viesti.

Toimenpiteet, muutokset eli transaktiot kirjoitetaan ensin lokiin, jonka jälkeen muutokset kirjoitetaan muistista levylle, tietokantaan. Tätä kutsutaan myös nimellä Write ahead logging. Jokainen transaktio toteuttaa ns. ACID-mallia:

  • Atomic (all or nothing) – Joko kaikki toimenpiteet toteutuvat tai jonkun puuttuessa, mikään yksittäinen toimenpide ei toteudu.
  • Consistent – Tietokanta muuttuu eheästä tilasta toiseen eheään tilaan.
  • Isolated – Muutokset eivät ole näkyviä, kunnes toimenpiteet ovat onnistuneesti suoritettu. Jokainen transaktio suoritetaan aina eri aikaan, vaikka niitä näyttäisi olevan useita yhtä aikaan. Näin ollen yksittäinen transaktio (t) suoritetaan aina joko ennen (t) tai jälkeen toisen transaktion (t).
  • Durable – Onnistuneet toimenpiteet tulee pysyä tietokannassa järjestelmän vikaantuessa.

10.9.2012

Exchange ESE, osa 2


FYYSINEN RAKENNE

Mikä on ESE?
Microsoft Exchange käyttää alustanaan ns. JET-tietokantaa. JET-tietokannasta käytetään myös nimitystä ESE (Extensible Storage Engine), joka viittaa Store-palveluun ja sen ESE.dll-komponenttiin. JET-tietokantaa käytetään muissakin Windows-pohjaisissa järjestelmissä ja palveluissa kuten esim. Active Directory, DNS, WINS ja DHCP. Exchangen tietokannasta käytetään nimitystä ESE98, jolla viitataan Exchange 2000 ja sitä uudempiin versioihin. Exchange 2010 myötä tietokannan rakenteeseen, Schemaan, on tullut merkittäviä muutoksia, jotka poikkeavat aikaisemmista versioista. Nimitys ESE98 on silti säilynyt samana.

ESE-tietokantaa kuvataan, että se on “multi-user ISAM (Indexed Sequential Access Method) database with full Data Manipulation Language (DML) and Data Definition Language (DDL) capabilities”. ISAM tarkoittaa Indexeihin perustuvaa nopeaa tiedonhakua ja Indexin avulla paikallistetaan tietue tietokannasta. ISAM on alun perin IBM:n kehittämä menetelmä Mainframe-tietokoneita varten. DLM tarkoittaa syntaksia, jolla tietokantaan voidaan lisätä, poistaa tai päivittää tietoa. DDL on syntaksi, jolla voidaan määritellä tietokannan rakenteita kuten esim. tietokantatauluja.

ESE:n fyysinen toteutus perustuu ns. B+Tree (Balanced)-puumalliin. Siinä tiedot järjestetään Blockeiksi tiedostojärjestelmän mukaisesti. Tehokkuus perustuu siihen, että tiedot tallennetaan syvyyssuunnassa mahdollisimman matalaan hierarkiaan, jotta tiedon palauttamiseen tarvitaan mahdollisimman vähän levyn I/O-operaatioita.

Tietokannan loogista rakennetta kuvaavat tietokantataulut, tietueet ja sarakkeet. Tietokanta sisältää postilaatikoita, jotka sisältävät kansioita, jotka taas sisältävät viestejä. Rakenne on hierarkkinen.

Tietokannan toiminta perustuu transaktioihin eli tietokantaan kohdistuvista sivujen muutoksista, jotka kirjoitetaan ensin transaktiolokiin ja sen jälkeen tietokantaan. Koko tietokanta voidaan palauttaa tarvittaessa lokeista.

21.8.2012

Exchange ESE, osa1


Saatteeksi
Myönnetään, että aihe on vähintäänkin haastava, mutta samalla erittäin mielenkiintoinen. Tarkoituksena on tarkastella Exchangen ESE-tietokantaa kolmesta eri näkökulmasta: fyysinen topologia, transaktiomalli ja looginen topologia. Esimerkit käsittelevät Exchange 2003, 2010 ja 2013 versioita ja ne on mainittu kussakin yhteydessä. Tietokannan toimintaa on hyvä ymmärtää, jotta ongelmatilanteissa ymmärretään, mitä pitää tehdä. Kun tilanne on ns. päällä, ei tällaisen aiheeseen tutustumiseen ole yksinkertaisesti silloin enää mahdollisuuksia, koska jokainen minuutti ja tunti on tärkeä.

6.8.2012

Exchange 2013 Preview - asennus (Unattended Mode)

Johdanto

Tarkoitus on rakentaa kahden Exchange-palvelimen (aluksi yksi) HA-ympäristö. Valitsin pohjaksi Windows Server 2008 R2 SP1 Windows Server 2012 Previewin sijaan, jotta käyttöjärjestelmään liittyvät mahdolliset bugit eivät haittaisi testaamista. Tässä vaiheessa asennusta ei voi vielä testata Exchange 2007 tai 2010 rinnalle tuen puuttuessa. Domain Controller-palvelin on erillinen ja se on myös Windows Server 2008 R2 SP1-tasolla. Active Directoryn toiminallinen taso on Windows Server 2003.

2.8.2012

Exchange 2013 Preview ja asiantuntijan tulevaisuus


Microsoft julkisti pari viikkoa sitten tiedon uudesta Office-paketista nimeltä Microsoft Office 2013. Paketista on ladattavissa esikatseluversio. Samalla julkaistiin muita esikatseluversioita eri tuoteista, yhtenä Exchange Server 2013 Preview. Kaiken kaikkiaan Microsoftin viesti on selkeä, tulevaisuuden palvelut ovat pilvessä ja nämä uudet tuotteet tukevat yhä paremmin tätä tilaa. Vaikka Microsoft julkaisee palvelintuotteistaan uusia versioita, joita voidaan ajaa omissa ympäristössä ja konesaleissa, alkaa sähköpostin (Exchange) ja viestinnän (Lync) osalta tilanne olla se, että nämä ovat niitä viimeisiä omia asennuksia. Yhä useampi organisaatio miettii siirtymistä pilvipalvelujen käyttöön. Kynnys vain madaltuu, kun ohjelmat ja työkalut kehittyvät entisestään ja helpottavat siirtymistä.

25.7.2012

Exchange 2010 ja Load Balancing, Osa 4

Debug-lokeja

Vasemmassa reunassa oleva juokseva numero kertoo palvelupyynnön tai transaktion järjestysnumeron. Seuraavassa osassa on Listen-osion nimi ja mistä toiminnosta on kyse. Toimintojen nimet ovat yksiselitteisiä. Lokissa vuorottelee asiakkaan ja serverin pyyntöjä ja vastauksia. Mielenkiintoista on huomata, että transaktiot sulkeutuvat eri järjestyksessä, kuin alkavat. Evästeitä on myös useita erilaisia.

Lokeja on kolme:
(1) Outlook Web App
(2) Outlook Anywhere
(3) MAPI RPC

Exchange 2010 ja Load Balancing, Osa 3


Exchangen palvelut

Microsoftilla on Technetissä aiheesta kaksi artikkelia. Aiheesta on pidetty myös esityksiä viime ja tämän vuoden TechEdissä. Artikkelit sisältävät suosituksia, miten eri applikaatioissa tulisi pysyvyysmääritykset tehdä. Alla oleva taulukko on yhteenveto näistä. Taulukko on peräisin Andrew Ehrensingin TechEd 2011:ssä pidetystä esityksestä. Sitä on hieman muokattu. RPC Endpoint Mapperille en ole löytänyt Persistence-suosituksia. Mutta loogisesti päätellen, sitä ei tarvita. Sillä asiakasohjelma tekee yhteyden alussa kyselyn RPC End Point Mapperin porttiin TCP 135 ja pyytää tietoa, missä portissa MAPI-pohjaiset palvelut ovat saatavilla. Exchange-palvelin palauttaa tiedon asiakasohjelmalle, jonka jälkeen liikennöinti tapahtuu määriteltyjä portteja pitkin. Oletusarvoisesti Exchange käyttää dynaamisia portteja TCP 1024-65535, mutta palvelut on kuitenkin hyvä määritellä staattisiksi Load Balanceria varten. Porttien arvot tulee olla välillä 59531-60554.


22.7.2012

Exchange 2010 ja Load Balancing, Osa 2


Routing Topology

HLB liitetään verkkoon yksi- tai kaksikätisesti, riippuen verkkotopologiasta ja tarpeista sekä HLB:n ominaisuuksista. HLB toimii verkossa viime kädessä liikenteen reitittäjänä, minkä takia asiayhteydessä puhutaan reitityksestä.

Reititystekniikoita on muutama ja niillä saattaa olla useita eri nimityksiä, riippuen toteuttajasta. Tiivistäen niitä ovat Direct Routing, SNAT sekä Bridging. Kuten edellä mainittu, termit menevät tässäkin yhteydessä sekaisin. Cisco käyttää nimitystä Routed Mode, vaikka sillä tarkoitetaan SNAT:ia. SNAT:ia saatetaan käyttää NATin yhteydessä, kun todelliselle palvelimille määritellään Masquerade-sääntö. Citrix käyttää SNAT:sta nimitystä USNIP Mode (Use Subnet IP).

Exchange 2010 ja Load Balancing, Osa 1


Johdanto

Load Balancing-tekniikka on tullut tutuksi viime aikoina Exchange-asiantuntijoille. Korkean käytettävyyden ratkaisut edellyttävät Client Access Server-roolin osalta jonkin tasoisen kuormantasausratkaisun. Perinteisellä Windowsin omalla NLB-tekniikalla on omat rajoitteensa ja Microsoft suositteleekin tätä nykyä erillistä Load Balancing-ratkaisua Exchange-toteutuksiin. CAS-roolin arkkitehtuurimuutokset on hyvin kuvattu Exchangen Technet-dokumentaatiossa. Niistä ilmenee hyvin, miksi kuormantasaus on välttämätön korkean käytettävyyden ratkaisuissa. Itse Load Balancing-asioista ei ole kovin monta montaa artikkelia Microsoftin toimesta julkaistu. Technetistä niitä löytyy tasan kaksi. Syykin on toisaalta melko luonnollinen, sillä Load Balancing-ratkaisujen toteutukset ovat kolmannen osapuolen tuotteita ja niihin löytyvä dokumentaatio on valmistajakohtaista. Valmistajat saattavat käyttää tuotteistaan nimitystä ”Exchange 2010-yhteensopiva”. Microsoft käsittelee asiaa Exchange-järjestelmän näkökulmasta ja antaa yleisiä suosituksia asioiden toteuttamiselle. Tarkempi perehtyminen yhtäältä Microsoftin dokumentaatioon ja toisaalta valmistajakohtaisiin dokumentaatioihin, tuo esiin sen, että nimityksellä ”Exchange 2010-yhteensopiva” saattaa olla väljempi merkitys.