Difference between revisions of "Mount-Everest"

(Installation)
 
(56 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
Server named after Mho, in the Mhount namespace, Everest being one of [http://en.wikipedia.org/wiki/Seven_Summits Seven summits].
 
Server named after Mho, in the Mhount namespace, Everest being one of [http://en.wikipedia.org/wiki/Seven_Summits Seven summits].
  
Mhount-Everest är en AFS-filserver som vi ärvde från mho. Det är en AMD Phentom II X6 1055T 3.3Ghz med 16Gb RAM, en xxxx systemdisk och xxxx snurr-diskar som har fungerat som lagringsserver, något som vi på Stacken kommer använda den som. Då vi har mer kompetens inom Linux än OpenSolaris/Indiana/... så valde vi att sätta upp en Debian-maskin med Linux mjukvaruraid.
+
Mhount-Everest är en AFS-filserver som vi ärvde från mho. Det är en AMD Athlon(tm) II X2 250 med 8Gb RAM. Då vi har mer kompetens inom Linux än OpenSolaris/Indiana/... så valde vi att sätta upp en Debian-maskin med Linux mjukvaruraid. Maskinen är fylld med 12 st 2T diskar och uppsatta med RAID.
  
 
== Installation ==
 
== Installation ==
  
Mhount-Everest är till den mån det gick installerad på samma sätt som [[Mhount-Kilimanjaro]]. Skillnader mellan installationerna kommer dokumenteras här.
+
=== Föreberedelse ===
  
Maskinen har ett integrerat nätverkskort som det inte fanns en öppen drivrutin för, det sitter ett externt intel-kort (eth1) som det finns bra stöd för.
+
Det är enklare att partitionera diskarna i förväg från en liveskiva, det sparar tid och är mycket trevligare att t.ex. boota en liveskiva och köra följande kommando.
  
Till skillnad mot [[Mhount-Kilimanjaro]] så hade installern problem med diskarna, det tog över en halvtimma för den att ta sig igenom alla 11 hårddiskarna. Man kan få fram loggen genom att kolla på VT-4 (ctrl-alt-F4). Efter lite tålamod kom den igenom och installationen fortsatte. Okänd om det var hårdvaran, innehållet på diskarna som förvirrade.
+
for n in a b c d e f g h i j k l ; do
 +
  parted -s /dev/sd$n mklabel msdos;
 +
  parted -s /dev/sd$n mkpart primary ext2 0% 10GB;
 +
  parted -s /dev/sd$n mkpart primary ext2 10GB 100%;
 +
done
  
=== Partition ===
+
'''OBS''' Notera att troligtvis har din USB-sticka/skiva hamnat med i listan på diskar, se till att du har med rätt diskar.
  
Mhount-Everest är utrustad med 11 snurr-diskar, 8 diskar vanliga stället samt 3 i 5,2 tums-platserna. Maskinen saknar en dedikerad systemdisk som [[Mhount-Kilimanjaro]] har. Vi har valt att skapa två raid-set. md0 som är en RAID5 och ligger över tre partitioner på de översta tre, samt md1 som är RAID6 och ligger över alla 11 diskar.
+
Vi valde sedan att plocka bort de diskarna som vi inte skulle ha med i vår system-RAID, det var för att göra det simpelt för oss. Vi valde att använda partition ett de sex diskarna som sitter i 5,2 tums plattserna för systemet.
  
De tre översta diskarna (de i 5,2 tums-platserna) ser ut så här:
+
=== OS installation ===
  
  part 1    1985 GB   Do not use
+
Grund-installationen gjordes med en Debian 6.0.3 AMD64 netinst CD. Vi valde engelska som språk, en_US.UTF-8 samt svenska som layout.
  part 2     10 GB     RAID
+
 
 +
Vid Task Select valde vi att inkludera SSH server samt avmarkera Graphical desktop enviroment. Följande var valt:
 +
 
 +
* SSH Server
 +
* Standad system utilities
 +
 
 +
Vi satte upp en mirror (RAID 1) över första partitionen på fyra diskar, samt två spares. På den RAID:en har vi sedan lagt LVM med två volymer, ''root'' för systemet samt ''swap'' för swap.
 +
 
 +
# cat /proc/mdstat
 +
Personalities : [raid1]
 +
md0 : active raid1 sda1[0] sde1[4](S) sdf1[5](S) sdd1[3] sdc1[2] sdb1[1]
 +
      9763768 blocks super 1.2 [4/4] [UUUU]
 +
 
 +
# lvs
 +
  LV  VG      Attr  LSize  Origin Snap%  Move Log Copy%  Convert
 +
  root vgmirror -wi-ao  8.38g                                     
 +
  swap vgmirror -wi-ao 952.00m 
 +
 
 +
Några problem som upptäcktes var att något blev knas när vi körde med gpt partitioner, gissningvis är det kanske ett problem om inte existerar vid nästa installation av filserver. Då diskarna inte var större än 2T så valde vi att välja den enkla vägen och köra klassisk partitionstabell á ''msdos''.
 +
 
 +
När installationsprogrammet skulle skriva ner grub så blev något fel, vi valde att hoppa över det steget i installationen och gå vidare. Efter att installationen var klar så bootade vi en live-skiva igen och körde följande (exempel från Ubuntu-skriva):
 +
 
 +
# Installera paket, sätt ihop arrayen (RAID:en)
 +
apt-get install mdadm lvm2
 +
mdadm -A --scan
 +
partprobe
 +
 
 +
# Chroota in i installationen
 +
mkdir /target
 +
mount /dev/vgmirror/root /target
 +
mount -o bind /proc /target/proc
 +
mount -o bind /dev /target/dev
 +
mount -o bind /sys /target/sys
 +
chroot /target /bin/bash
 +
 
 +
# Kör grub-install på alla system-diskar
 +
for n in a b c d e f; do
 +
  grub-install /dev/sd$n;
 +
done
 +
update-grub
 +
 
 +
'''OBS!'' Notera att din usb-sticka/skiva förmodligen ligger någon bland diskarna, akta så att du inte av misstag kör grub-install på din usb-sticka, eller att du grömmer en disk.
 +
 
 +
Vi stängde sedan av datorn och satte i de resterande sex diskarna igen och bootade datorn.
 +
 
 +
=== Konfiguration ===
 +
 
 +
==== Uppdatera systemet ====
 +
 
 +
apt-get update
 +
apt-get upgrade
 +
apt-get dist-upgrade
 +
 
 +
==== MD ====
 +
 
 +
Installera user land verktyget mdadm för att administrera arrayen.
 +
Du kommer få en fråga om vilka arrayer att starta vid boot, lämna det på default (all).
 +
 
 +
apt-get install mdadm
 +
 
 +
Nu vill vi skapa en RAID6 över partition två på alla diskar med två hot spares.
 +
 
 +
  mdadm --create /dev/md1 --level=raid6 --raid-devices=10 /dev/sd{a,b,c,d,e,f,g,h,i,j}2 \
 +
  --spare-devices=2 /dev/sd{k,l}2
 +
 
 +
Klart, nu ser det ut så här på vår nya array
 +
 
 +
# mdadm -D /dev/md1
 +
/dev/md1:
 +
        Version : 1.2
 +
  Creation Time : Thu Oct  4 21:49:24 2012
 +
      Raid Level : raid6
 +
      Array Size : 15549976576 (14829.61 GiB 15923.18 GB)
 +
  Used Dev Size : 1943747072 (1853.70 GiB 1990.40 GB)
 +
     Raid Devices : 10
 +
  Total Devices : 12
 +
    Persistence : Superblock is persistent
 +
 +
    Update Time : Thu Oct  4 21:49:24 2012
 +
          State : clean
 +
  Active Devices : 10
 +
Working Devices : 12
 +
  Failed Devices : 0
 +
   Spare Devices : 2
 +
 +
          Layout : left-symmetric
 +
      Chunk Size : 512K
 +
 +
            Name : mount-everest:1  (local to host mount-everest)
 +
            UUID : 66880268:b4971097:4c767927:280fd9a6
 +
          Events : 0
 +
   
 +
    Number  Major  Minor  RaidDevice State
 +
        0      8        2        0      active sync  /dev/sda2
 +
        1      8      18        1      active sync  /dev/sdb2
 +
        2      8      34        2     active sync  /dev/sdc2
 +
        3      8      50        3      active sync  /dev/sdd2
 +
        4      8      66        4      active sync  /dev/sde2
 +
        5      8      82        5      active sync  /dev/sdf2
 +
        6      8      98        6      active sync  /dev/sdg2
 +
        7      8      114        7      active sync  /dev/sdh2
 +
        8      8      130        8      active sync  /dev/sdi2
 +
        9      8      146        9      active sync  /dev/sdj2
 +
 +
      10       8      162        -      spare  /dev/sdk2
 +
      11      8      178        -     spare  /dev/sdl2
 +
 
 +
Vi sätter sync_speed_min till 10000 då vi inte vill att det ska ta för lång tid att bygga om raid:en om en disk går sönder. Vi vill inte att den ska gå sönder innan nästa disk hinner går sönder.
 +
 
 +
Fyll i nedan i /etc/rc.local
 +
 
 +
test -f /sys/block/md0/md/stripe_cache_size && echo 16384 > /sys/block/md0/md/stripe_cache_size
 +
test -f /sys/block/md0/md/sync_speed_min && echo 10000 > /sys/block/md0/md/sync_speed_min
 +
test -f /sys/block/md1/md/stripe_cache_size && echo 16384 > /sys/block/md1/md/stripe_cache_size
 +
test -f /sys/block/md1/md/sync_speed_min && echo 10000 > /sys/block/md1/md/sync_speed_min
 +
 
 +
Slutligen vill vi att vår nya array ska finnas med i /etc/mdadm/mdadm.conf så att den startas vid boot. Uppdatera filen med utdata från följande kommando.
 +
 
 +
mdadm --examine --scan
 +
 
 +
==== LVM ====
 +
 
 +
Formatera våran nya array till lvm med pvcreate
 +
 
 +
pvcreate /dev/md1
 +
 +
Skapa en volymgrupp över hela partitionen med physical extent size satt till 64M
 +
 
 +
vgcreate -s 64M vicevg0 /dev/md1
 +
 
 +
Vi börjar med att skapa tre volymer för afs, vid ramtida behov så är det enkelt att skapa flera.
 +
 
 +
lvcreate -L 2T -n vicepa vicevg0
 +
lvcreate -L 2T -n vicepb vicevg0
 +
lvcreate -L 2T -n vicepc vicevg0
 +
 
 +
==== XFS ====
 +
 
 +
apt-get install xfsprogs
 +
 
 +
Skapa filsystem på våra nya volymer
 +
 
 +
mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepa
 +
mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepb
 +
mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepc
 +
 
 +
Lägg till följande i /etc/fstab
 +
 
 +
/dev/vicevg0/vicepa /vicepa xfs noatime,nodiratime,logbufs=8 0 0
 +
/dev/vicevg0/vicepb /vicepb xfs noatime,nodiratime,logbufs=8 0 0
 +
/dev/vicevg0/vicepc /vicepc xfs noatime,nodiratime,logbufs=8 0 0
 +
 
 +
Skapa kataloger och montera
 +
 
 +
mkdir /vicepa
 +
mkdir /vicepb
 +
mkdir /vicepc
 +
mount -a
 +
 
 +
==== Heimdal ====
 +
 
 +
apt-get install heimdal-clients
 +
 
 +
==== AFS ====
 +
 
 +
apt-get install openafs-client openafs-fileserver
 +
 
 +
cellen är stacken.kth.se, cache kan du lämna på default.
 +
 
 +
Installera en BosConfig i /etc/openafs/ Den skall inte installeras där dokumentationen säger. Den skall innehålla:
 +
 
 +
restarttime 16 0 0 0 0
 +
checkbintime 16 0 0 0 0
 +
bnode fs fs 1
 +
parm /usr/lib/openafs/fileserver -udpsize 131071 -sendsize 131071 -nojumbo -p 128 -busyat 1200 -rxpck  800 -s 2400 -l 2400 -cb 1000000 -b 480 -vc 2400
 +
parm /usr/lib/openafs/volserver
 +
parm /usr/lib/openafs/salvager -datelogs -parallel all8 -orphans attach
 +
end
 +
 
 +
<code>/etc/openafs/server/CellServDB</code> samt <code>/etc/openafs/server/ThisCell</code> bör vara automatiskt configurerade, men kolla gärna i dem så att de är korrekta.
 +
<code>server/CellServDB</code> skall innehålla hemmacellsentryt (endast).
 +
 
 +
Skapa <code>/etc/openafs/server/UserList</code> som innehåller administratörer, kopiera filen från en redan existerande server. Notationen ska vara i formatet <code>nsg.admin</code>
 +
 
 +
<code>/etc/openafs/server/KeyFile</code> hämtar man från en annan AFS server. KeyFile är HEMLIGT och måste hämtas på ett säkert, crypterad sätt. KeyFile ska ha rättigheterna <code>600 root:root</code> satta.
 +
 
 +
Sedan klart för att starta fileservern
 +
 
 +
service openafs-fileserver start
 +
 
 +
==== Postfix ====
 +
 
 +
apt-get install postfix
 +
 
 +
Välj "Internet Site", resten default.
 +
Nu bör maskinen kunnna skicka root-mail.
 +
 
 +
=== ssh / kerberos ===
 +
 
 +
            SSH
 +
 
 +
Följande parametrar skall verifieras/adderas i /etc/ssh/sshd_config:
 +
 
 +
(PermitRootLogin kan sättas till yes tills den kompletta kerberiserade konfigurationen är verifierad ok)
 +
 
 +
PermitRootLogin without-password
 +
KerberosAuthentication yes
 +
KerberosOrLocalPasswd yes
 +
KerberosTicketCleanup yes
 +
GSSAPIAuthentication yes
 +
GSSAPIKeyExchange yes
 +
 
 +
Verifiera att /etc/hostname innehåller FQDN för maskinen.
 +
Verifiera att /etc/hosts innehåller maskinens FQDN med korrekt IP-adress.
 +
 
 +
          Kerberos
 +
 
 +
krb5.conf får rätt defaultrealm vid installation av AFS så den skall fungera "as is".
 +
 
 +
Skapa/kopiera /root/.k5login med hela stacken staffs alla rootprincipaler.
 +
 
 +
Skapa
  
 
== Se även ==
 
== Se även ==
  
 
* [[Mhount-Kilimanjaro]]
 
* [[Mhount-Kilimanjaro]]
 +
 +
[[Category: Maskiner]]
 +
[[Category: Filserver]]

Latest revision as of 22:46, 25 October 2012

Server named after Mho, in the Mhount namespace, Everest being one of Seven summits.

Mhount-Everest är en AFS-filserver som vi ärvde från mho. Det är en AMD Athlon(tm) II X2 250 med 8Gb RAM. Då vi har mer kompetens inom Linux än OpenSolaris/Indiana/... så valde vi att sätta upp en Debian-maskin med Linux mjukvaruraid. Maskinen är fylld med 12 st 2T diskar och uppsatta med RAID.

Installation

Föreberedelse

Det är enklare att partitionera diskarna i förväg från en liveskiva, det sparar tid och är mycket trevligare att t.ex. boota en liveskiva och köra följande kommando.

for n in a b c d e f g h i j k l ; do
  parted -s /dev/sd$n mklabel msdos;
  parted -s /dev/sd$n mkpart primary ext2 0% 10GB;
  parted -s /dev/sd$n mkpart primary ext2 10GB 100%;
done

OBS Notera att troligtvis har din USB-sticka/skiva hamnat med i listan på diskar, se till att du har med rätt diskar.

Vi valde sedan att plocka bort de diskarna som vi inte skulle ha med i vår system-RAID, det var för att göra det simpelt för oss. Vi valde att använda partition ett på de sex diskarna som sitter i 5,2 tums plattserna för systemet.

OS installation

Grund-installationen gjordes med en Debian 6.0.3 AMD64 netinst CD. Vi valde engelska som språk, en_US.UTF-8 samt svenska som layout.

Vid Task Select valde vi att inkludera SSH server samt avmarkera Graphical desktop enviroment. Följande var valt:

  • SSH Server
  • Standad system utilities

Vi satte upp en mirror (RAID 1) över första partitionen på fyra diskar, samt två spares. På den RAID:en har vi sedan lagt LVM med två volymer, root för systemet samt swap för swap.

# cat /proc/mdstat 
Personalities : [raid1] 
md0 : active raid1 sda1[0] sde1[4](S) sdf1[5](S) sdd1[3] sdc1[2] sdb1[1]
     9763768 blocks super 1.2 [4/4] [UUUU]
# lvs
  LV   VG       Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  root vgmirror -wi-ao   8.38g                                      
  swap vgmirror -wi-ao 952.00m  

Några problem som upptäcktes var att något blev knas när vi körde med gpt partitioner, gissningvis är det kanske ett problem om inte existerar vid nästa installation av filserver. Då diskarna inte var större än 2T så valde vi att välja den enkla vägen och köra klassisk partitionstabell á msdos.

När installationsprogrammet skulle skriva ner grub så blev något fel, vi valde att hoppa över det steget i installationen och gå vidare. Efter att installationen var klar så bootade vi en live-skiva igen och körde följande (exempel från Ubuntu-skriva):

# Installera paket, sätt ihop arrayen (RAID:en)
apt-get install mdadm lvm2
mdadm -A --scan
partprobe
# Chroota in i installationen
mkdir /target
mount /dev/vgmirror/root /target
mount -o bind /proc /target/proc
mount -o bind /dev /target/dev
mount -o bind /sys /target/sys
chroot /target /bin/bash
# Kör grub-install på alla system-diskar
for n in a b c d e f; do 
  grub-install /dev/sd$n; 
done
update-grub

'OBS! Notera att din usb-sticka/skiva förmodligen ligger någon bland diskarna, akta så att du inte av misstag kör grub-install på din usb-sticka, eller att du grömmer en disk.

Vi stängde sedan av datorn och satte i de resterande sex diskarna igen och bootade datorn.

Konfiguration

Uppdatera systemet

apt-get update
apt-get upgrade
apt-get dist-upgrade

MD

Installera user land verktyget mdadm för att administrera arrayen. Du kommer få en fråga om vilka arrayer att starta vid boot, lämna det på default (all).

apt-get install mdadm

Nu vill vi skapa en RAID6 över partition två på alla diskar med två hot spares.

mdadm --create /dev/md1 --level=raid6 --raid-devices=10 /dev/sd{a,b,c,d,e,f,g,h,i,j}2 \
  --spare-devices=2 /dev/sd{k,l}2

Klart, nu ser det ut så här på vår nya array

# mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Thu Oct  4 21:49:24 2012
     Raid Level : raid6
     Array Size : 15549976576 (14829.61 GiB 15923.18 GB)
  Used Dev Size : 1943747072 (1853.70 GiB 1990.40 GB)
   Raid Devices : 10
  Total Devices : 12
    Persistence : Superblock is persistent

    Update Time : Thu Oct  4 21:49:24 2012
          State : clean
 Active Devices : 10
Working Devices : 12
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

           Name : mount-everest:1  (local to host mount-everest)
           UUID : 66880268:b4971097:4c767927:280fd9a6
         Events : 0

    Number   Major   Minor   RaidDevice State
       0       8        2        0      active sync   /dev/sda2
       1       8       18        1      active sync   /dev/sdb2
       2       8       34        2      active sync   /dev/sdc2
       3       8       50        3      active sync   /dev/sdd2
       4       8       66        4      active sync   /dev/sde2
       5       8       82        5      active sync   /dev/sdf2
       6       8       98        6      active sync   /dev/sdg2
       7       8      114        7      active sync   /dev/sdh2
       8       8      130        8      active sync   /dev/sdi2
       9       8      146        9      active sync   /dev/sdj2

      10       8      162        -      spare   /dev/sdk2
      11       8      178        -      spare   /dev/sdl2

Vi sätter sync_speed_min till 10000 då vi inte vill att det ska ta för lång tid att bygga om raid:en om en disk går sönder. Vi vill inte att den ska gå sönder innan nästa disk hinner går sönder.

Fyll i nedan i /etc/rc.local

test -f /sys/block/md0/md/stripe_cache_size && echo 16384 > /sys/block/md0/md/stripe_cache_size
test -f /sys/block/md0/md/sync_speed_min && echo 10000 > /sys/block/md0/md/sync_speed_min
test -f /sys/block/md1/md/stripe_cache_size && echo 16384 > /sys/block/md1/md/stripe_cache_size
test -f /sys/block/md1/md/sync_speed_min && echo 10000 > /sys/block/md1/md/sync_speed_min

Slutligen vill vi att vår nya array ska finnas med i /etc/mdadm/mdadm.conf så att den startas vid boot. Uppdatera filen med utdata från följande kommando.

mdadm --examine --scan

LVM

Formatera våran nya array till lvm med pvcreate

pvcreate /dev/md1

Skapa en volymgrupp över hela partitionen med physical extent size satt till 64M

vgcreate -s 64M vicevg0 /dev/md1

Vi börjar med att skapa tre volymer för afs, vid ramtida behov så är det enkelt att skapa flera.

lvcreate -L 2T -n vicepa vicevg0
lvcreate -L 2T -n vicepb vicevg0
lvcreate -L 2T -n vicepc vicevg0

XFS

apt-get install xfsprogs

Skapa filsystem på våra nya volymer

mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepa
mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepb
mkfs.xfs -l size=134217728,lazy-count=1 /dev/vicevg0/vicepc

Lägg till följande i /etc/fstab

/dev/vicevg0/vicepa /vicepa xfs noatime,nodiratime,logbufs=8 0 0
/dev/vicevg0/vicepb /vicepb xfs noatime,nodiratime,logbufs=8 0 0
/dev/vicevg0/vicepc /vicepc xfs noatime,nodiratime,logbufs=8 0 0

Skapa kataloger och montera

mkdir /vicepa
mkdir /vicepb
mkdir /vicepc
mount -a

Heimdal

apt-get install heimdal-clients

AFS

apt-get install openafs-client openafs-fileserver

cellen är stacken.kth.se, cache kan du lämna på default.

Installera en BosConfig i /etc/openafs/ Den skall inte installeras där dokumentationen säger. Den skall innehålla:

restarttime 16 0 0 0 0
checkbintime 16 0 0 0 0
bnode fs fs 1
parm /usr/lib/openafs/fileserver -udpsize 131071 -sendsize 131071 -nojumbo -p 128 -busyat 1200 -rxpck  800 -s 2400 -l 2400 -cb 1000000 -b 480 -vc 2400
parm /usr/lib/openafs/volserver
parm /usr/lib/openafs/salvager -datelogs -parallel all8 -orphans attach
end

/etc/openafs/server/CellServDB samt /etc/openafs/server/ThisCell bör vara automatiskt configurerade, men kolla gärna i dem så att de är korrekta. server/CellServDB skall innehålla hemmacellsentryt (endast).

Skapa /etc/openafs/server/UserList som innehåller administratörer, kopiera filen från en redan existerande server. Notationen ska vara i formatet nsg.admin

/etc/openafs/server/KeyFile hämtar man från en annan AFS server. KeyFile är HEMLIGT och måste hämtas på ett säkert, crypterad sätt. KeyFile ska ha rättigheterna 600 root:root satta.

Sedan klart för att starta fileservern

service openafs-fileserver start

Postfix

apt-get install postfix

Välj "Internet Site", resten default. Nu bör maskinen kunnna skicka root-mail.

ssh / kerberos

           SSH

Följande parametrar skall verifieras/adderas i /etc/ssh/sshd_config:

(PermitRootLogin kan sättas till yes tills den kompletta kerberiserade konfigurationen är verifierad ok)

PermitRootLogin without-password
KerberosAuthentication yes
KerberosOrLocalPasswd yes
KerberosTicketCleanup yes
GSSAPIAuthentication yes
GSSAPIKeyExchange yes

Verifiera att /etc/hostname innehåller FQDN för maskinen. Verifiera att /etc/hosts innehåller maskinens FQDN med korrekt IP-adress.

          Kerberos

krb5.conf får rätt defaultrealm vid installation av AFS så den skall fungera "as is".

Skapa/kopiera /root/.k5login med hela stacken staffs alla rootprincipaler.

Skapa

Se även