Automatic Storage Management (ASM) Tomáš Skalický
Osnova Co to je? K čemu je to dobré? Jak to funguje? Jak se to používá? Administrace diskových skupin
Co to je? Automatic Storage Management = Automatická Správa Uložiště Integrovaný file systém a správce disků pro databázi Oracle. Způsob jak zjednodušit administraci. Součást Oracle (od verze 10g).
Co to je?
K čemu to je? Rozděluje všechna dostupná uložiště do tzv. disk groups (= diskových skupin). Odstraňuje potřebu přímého spravování souborů (potenciálně mnoho). Administrátor spravuje pouze malou množinu diskových skupin. O fyzické umístění souborů rozhoduje ASM.
K čemu to je? Mirroring zálohování na úrovni extentů druhy: a) 2-way mirroring (1 kopie) b) 3-way mirroring (2 kopie) c) unprotected (když mirroring provádí subsystém disku) Striping rozložení souboru na více disků rychlejší přístup Balancing umožňuje měnit konfiguraci uložišť za běhu databáze. při připojení či odpojení disku rovnoměrně přeuspořádá data na discích.
K čemu to je? Jména souborů automaticky generovaná možné aliasy Failure group = skupina disků, které mohou selhat současně. pro 2-way mirroring je potřeba 2 failure groups
K čemu to je? Další pozitiva: Podpora velkých souborů Malá režie - 64 MB na instanci ASM Podpora RAC (= Real Application Cluster) komponenta, jež umožňuje, aby jedna databáze běžela nad skupinou serverů, aniž by bylo třeba upravit aplikaci.
K čemu to je?
Jak to funguje? ASM spravována pomocí ASM instance Jedna ASM instance může spravovat jednu, nebo více databází na jednom servru. Každá disková skupina může být sdílena mezi všemi databázemi na servru. Při použití RAC, na každé stanici běží ASM instance. Komunikace mezi ASM instance je peer-to-peer. Interoperabilita s existujícími databázemi Nové soubory jsou vytvářeny jako ASM soubory, staré jsou spravovány jako dříve. Databáze můžou mít směs ASM souborů a non-asm souborů.
Jak to funguje? ASM rozděluje soubory do extentů velikosti 1 AU (Allocation Unit) 1 AU = 1 MB (v Oracle 11g lze nastavit jinak) ASM rozmísťuje extenty rovnoměrně na disky v diskové skupině Při odebrání či přidání disku se přesouvá jen část dat. Pro soubory, které vyžadují malou latenci (např. logfily) je možný jemnější stripping (např. 128 kb).
Jak se to používá? Pomocí SQL*Plus - Další nástroje: Oracle Enterprise Manager (EM) nebo Database Configuration Assistant (DBCA) $ export ORACLE_SID=+ASM $ echo 'INSTANCE_TYPE=ASM' >> /tmp/init+asm.ora $ sqlplus / as sysdba SQL> CREATE SPFILE FROM PFILE='/tmp/init+ASM.ora'; File created. SQL> startup nomount ASM instance started Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers 125829120 bytes 1301456 bytes 124527664 bytes 0 bytes 0 bytes SQL> shutdown ASM instance shutdown
Administrace diskových skupin CREATE DISKGROUP - úroveň redundance: - NORMAL REDUNDANCY 2-way mirroring - HIGH REDUNDANCY 3-way mirroring - EXTERNAL REDUNDANCY no mirroring, HW mirroring nebo RAID CREATE DISKGROUP disk_group_1 NORMAL REDUNDANCY FAILGROUP failure_group_1 DISK '/devices/diska1' NAME diska1, '/devices/diska2' NAME diska2, FAILGROUP failure_group_2 DISK '/devices/diskb1' NAME diskb1, '/devices/diskb2' NAME diskb2; DROP DISKGROUP DROP DISKGROUP disk_group_1 INCLUDING CONTENTS;
Administrace diskových skupin ALTER TABLE -- Add disks. ALTER DISKGROUP disk_group_1 ADD DISK '/devices/disk*3', '/devices/disk*4'; -- Drop a disk. ALTER DISKGROUP disk_group_1 DROP DISK diska2; -- Resize a specific disk. ALTER DISKGROUP disk_group_1 RESIZE DISK diska1 SIZE 100G; -- Resize all disks in a failure group. ALTER DISKGROUP disk_group_1 RESIZE DISKS IN FAILGROUP failure_group_1 SIZE 100G; -- Resize all disks in a disk group. ALTER DISKGROUP disk_group_1 RESIZE ALL SIZE 100G;
Administrace diskových skupin ALTER TABLE ALTER DISKGROUP disk_group_1 UNDROP DISKS; ALTER DISKGROUP ALL DISMOUNT; ALTER DISKGROUP ALL MOUNT; ALTER DISKGROUP disk_group_1 DISMOUNT; ALTER DISKGROUP disk_group_1 MOUNT;
Literatura http://download.oracle.com/docs/cd/b19306_01/server.102/b14231/storeman.htm http://www.oracle-base.com/articles/10g/automaticstoragemanagement10g.php http://en.wikipedia.org/wiki/automatic_storage_management