Andmesalvestus üldiselt - Linux
Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
Sissejuhatus
Andmesalvestuseks kasutatakse linux keskkonnas nn plokk-seadmeid, nt
- /dev/sda - füüsilises arvutis sata seade
- /dev/vda - qemu virtuaalses arvutis plokkseade
- /dev/mapper/multipath-01 - multipath
- /dev/md127 - mdadm
- /dev/mapper/c_system - cryptosetup
- /dev/drbd0 - drbd
- /dev/mapper/vg_nimi-lv-nimi_01 - lvm
- /dev/zd123 - zfs volume tüüpi dataset
- /dev/nvme0n1 - füüsilises arvutis sata seade
- /dev/rbd1 - ceph rados block device
- /dev/sdb - iscsi klienti juures olev üle võrgu külge ühendatud plokkseade
kus
- /dev/mapper algusega seadmed kuuluvad ühte seadmete gruppi nimega 'device mapper'
- zfs on täiesti omaette nö alamsüsteemi linux kernelis
- btrfs on täiesti omaette nö alamsüsteemi linux kernelis
- mdadm on täiesti omaette nö alamsüsteemi linux kernelis
Mõisted
- BIO - block input-output
- DM - device mapper
Device mapper
Väited
- 'device mapper' nagu nimigi ütleb tegeleb seadme teisendusega, mitte niivõrd seadme kui terviku, aga mingi hulga seadmega seotud andmete addresseerimisega
- 'device mapper' ülesanne on midagi sarnast nagu linux operatsioonisüsteemi mälu halduse puhul 'virtuaalne mälu' nähtusega
- teisendusi saab olla üksteise järel mitu
- linux keskkonnas on võimalik andmesalvestust korraldada ilma device mapper abita, nt moodustada failisüsteemi otse füüsilise plokkseadme peale
- device mapper võimaldab nö staatilisi mappinguid - multipath, lvm
- device mapper võimaldab nö dünaamilisi mappinguid - cryptsetup, vdo
device mapper puhul saab täheldada selliseid variatsioone adresseerimise ja sisuga tegelemise mõttes
- teisendus toimub adresseerimise mõttes staatiliselt - lineaarselt 1:1 aga erinevatel positsioonidel (nt dm-linear)
- teisendus toimub adresseerimise mõttes dünaamiliselt - pathide valiku mõttes (nt dm-multipath)
- teisendus toimub dünaamiliselt sisu mõttes - nt krüptimine (nt dm-crypt), nt pakkimine ja deduplikeerimine (dm-vdo)
- device mapper töötab plokkseadmega (mitte nt failiga; kui soovida failiga töötada, siis tuleks esmalt nt losetup abil failile moodustada vastav plokkseade)
dm-linear primitiivi kasutamine käsitsi
Olgu kasutada üks plokkseade, mille järjestikulistel plokkidel (sektoritel) asub ext4 failisüsteem. Üks viis sellist moodustist tekitada on lvm paigutamine nö füüsilisele plokkseadmele
root@varundus-2nd:~# vgcreate vg_vdg /dev/vdg Physical volume "/dev/vdg" successfully created. Volume group "vg_vdg" successfully created root@varundus-2nd:~# lvcreate -L 1G -n lv_01 vg_vdg WARNING: ext4 signature detected on /dev/vg_vdg/lv_01 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/vg_vdg/lv_01. Logical volume "lv_01" created. root@varundus-2nd:~# lvcreate -L 2G -n lv_02 vg_vdg WARNING: ext4 signature detected on /dev/vg_vdg/lv_02 at offset 1080. Wipe it? [y/n]: y Wiping ext4 signature on /dev/vg_vdg/lv_02. Logical volume "lv_02" created. root@varundus-2nd:~# mkfs.ext4 /dev/vg_vdg/lv_01 root@varundus-2nd:~# mkfs.ext4 /dev/vg_vdg/lv_02 root@varundus-2nd:~# mount /dev/mapper/vg_vdg-lv_01 /mnt/lv_01 root@varundus-2nd:~# mount /dev/mapper/vg_vdg-lv_02 /mnt/lv_02 root@varundus-2nd:~# date > /mnt/lv_01/data.txt root@varundus-2nd:~# date > /mnt/lv_02/data.txt root@varundus-2nd:~# dmsetup -c info Name Maj Min Stat Open Targ Event UUID system-root 252 2 L--w 1 1 0 LVM-jCVtUxe8Wmr9TsplZ3XSs5pSGDdpzFlKTY8FuwH6LnQ94EVGcgz4CgYopWmR7Wmo system-swap 252 1 L--w 1 1 0 LVM-jCVtUxe8Wmr9TsplZ3XSs5pSGDdpzFlKa4gXR2WSd560ev8dA7jFjnAwXOzFpROj vg_vdg-lv_01 252 5 L--w 1 1 0 LVM-orCkqeXxmsR0Haoibu26uIhK1oqdTE6mipnuMe7HRTv4Iblhuw5IQ6Bjlq7EbRnC vg_vdg-lv_02 252 6 L--w 1 1 0 LVM-orCkqeXxmsR0Haoibu26uIhK1oqdTE6myleAWuttfTzICWYHAgqed15GvCvZ0R30
ja seejärel aadresside küsimine
root@varundus-2nd:~# dmsetup table vg_vdg-lv_01 0 2097152 linear 253:96 2048 root@varundus-2nd:~# dmsetup table vg_vdg-lv_02 0 4194304 linear 253:96 2099200
ja seejärel lvm struktuuride kustutamine
root@varundus-2nd:~# umount /mnt/lv_01 root@varundus-2nd:~# umount /mnt/lv_02 root@varundus-2nd:~# vgremove vg_vdg Do you really want to remove volume group "vg_vdg" containing 2 logical volumes? [y/n]: y Do you really want to remove active logical volume vg_vdg/lv_01? [y/n]: y Logical volume "lv_01" successfully removed. Do you really want to remove active logical volume vg_vdg/lv_02? [y/n]: y Logical volume "lv_02" successfully removed. Volume group "vg_vdg" successfully removed root@varundus-2nd:~# pvremove /dev/vdg Labels on physical volume "/dev/vdg" successfully wiped. root@varundus-2nd:~# wipefs /dev/vdg root@varundus-2nd:~#
Osutub, et device mapper abiga on võimalik kergesti sektoritele vahemikule vastav plokkseade tekitada
root@varundus-2nd:~# echo "0 2097152 linear /dev/vdg 2048" | dmsetup create disk_lv_01 root@varundus-2nd:~# echo "0 4194304 linear /dev/vdg 2099200" | dmsetup create disk_lv_02 root@varundus-2nd:~# dmsetup -c info Name Maj Min Stat Open Targ Event UUID disk_lv_01 252 5 L--w 0 1 0 disk_lv_02 252 6 L--w 0 1 0 ..
Ja selle peal algselt olnud failisüsteem on jällegi kasutatav
root@varundus-2nd:~# mount /dev/mapper/disk_lv_01 /mnt/lv_01 root@varundus-2nd:~# mount /dev/mapper/disk_lv_02 /mnt/lv_02 root@varundus-2nd:~# df -t ext4 -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/mapper/system-root ext4 11428080 6074128 4751636 57% / /dev/vda1 ext4 472408 248059 195319 56% /boot /dev/mapper/vg_vdo-lv_vdo_storage ext4 205314024 19873372 174938508 11% /mnt/lv_vdo /dev/mapper/disk_lv_01 ext4 996780 284 927684 1% /mnt/lv_01 /dev/mapper/disk_lv_02 ext4 1992552 540 1870772 1% /mnt/lv_02 root@varundus-2nd:~# cat /mnt/lv_0*/data.txt Tue Apr 7 07:30:30 PM EEST 2026 Tue Apr 7 07:30:34 PM EEST 2026
Labori kustutamiseks sobib öelda
root@varundus-2nd:~# dmsetup remove disk_lv_01 disk_lv_02 root@varundus-2nd:~#