Skip to content

Docker ykn Kubernetes Production Volume Haqame: Baraaruu docker system prune --volumes, . overlay2 Inodes, fi etcd Suuraalee yeroo muraasa

Lakkoofsi balaa tasaa biyyaa adda adda. Fuulli kun lakkoofsa Ameerikaa fi Kanaadaa 911 fayyadama. Biyyoonni biroo hedduun 112, 999 ykn lakkoofsa kan biraa fayyadamu. Lakkoofsa biyya keessaniif ta'u barbaadi.

Fiigicha docker compose down -v, . docker system prune -a --volumes, . docker volume rm, ykn kubectl delete pvc caancala tarminaalii dogoggoraa irratti oomisha keessatti karaalee saffisaa jildii kuusdeetaa PostgreSQL, MySQL, MariaDB, Redis, MongoDB, ykn SQLite jiraataa haxaa'uuf gargaaran keessaa isa tokkodha. Faallaa suuraa maashinii duumessa dhugaa kan gara bakka deebi'ee fayyadamu guyyoota 7tti socho'u, Docker's local volume driver (/var/lib/docker/volumes/<name>/_data) fi Kubernetes jedhaman local-path / . hostPath dhiyeessitoonni battalumatti POSIX istaandaardii ni kennu unlink() fi rmdir() kallattiin sirna faayilii keessummeessituu Liinux jala jiru irratti waamicha (ext4, . XFS, ykn Btrfs). Barreeffamni erga ajajni xumuramee booda keessummeessituu Liinux sana irratti uumamu hundi uggura kuusdeetaa bilisa ta'e diskiin irratti barreessuu danda'a. Yoo diskiin sarvarii keessan hanga dhibbeentaa 100 (0 bytes free) osoo namni tokko hin fiigin dura docker system prune --volumes rifachuudhaan, mariisisaa diskiin sarvarii 100% guutuu, kuusdeetaa WAL log bloat, fi zeeroo-bakka deebisuu; haqiinsa faayilii Liinux bare-metal qabduu ala jiruuf, ilaali akka tasaa rm -rf ykn Shift-Delete ext4, XFS, APFS, fi NTFS irratti: dubbisa qofa irra deebi'anii fe'uu fi bocuu inode fi maashinii dhugaa VMDK, VHDX, fi qcow2 suuraa sansalataa suuraa fi baraarsa haaypervaayizarii. Yoo addaan citiinsi oomishaa kun kunuunsa dhukkubsataa hospitaalaa, ergaa hatattamaa, ykn sirna nageenya tajaajila uummataa irratti dhiibbaa uume, lakkoofsa hatattamaa naannoo keessanii bilbili (911 Ameerikaa fi Kaanaadaa keessatti, . 112 guutuu Gamtaa Awurooppaa keessatti, . 999 Yunaayitid Kingidam keessatti) ykn galmee keenya kan lakkoofsa balaa tasaa.

Amma kana godhi

  1. HIN fiigin docker compose up -d, . systemctl restart docker, ykn pod Kubernetes irra deebi'ii bobbaasuu: Qabduu irra deebi'anii uumuun ykn deemoonii Docker deebisee jalqabuun meeggaabaayitii haaraa barreessa overlay2 meetadaataa, galmeewwan JSON qabduu, fi faayilii kuusdeetaa duwwaa haaraa jalqabame (initdb) kallattiin sirrii irratti ext4 ykn XFS bakka sagaleen kee haqame sekondii muraasa dura taa'ee ture uggura.
  2. Adeemsi qabduu yoo (postgres, . mysqld, . redis-server, . node, . python) ammallee memory (ps aux fi sudo lsof +L1): Yoo namni tokko faayiloota jildii fe'ame keessa jiran haqee ykn jildii maqaa hin qabne osoo qabduun ammallee hojjechaa jiruu hiike, kernel Liinux faayilota kuusdeetaa hin hidhamne keessaa dhibbeentaa 100 diskiin hanga ID Adeemsa keessummeessituu qabduu (PID) ibsituu faayilii banaa qabata ( .FD). Faayilota sana kallattiin keessaa waraabuu dandeessa /proc/<PID>/fd/ ykn /proc/<PID>/root/ osoo qabduun hin dhaabbatin kasaaraa deetaa zeeroo wajjin.
  3. Yoo qabduun duraan dhaabatee fi sagaleen haqame (docker compose down -v ykn docker system prune --volumes), barreessuu diskiin keessummeessituu battalumatti dhorki: Deemoonii Docker dhaabi (sudo systemctl stop docker.socket docker.service containerd) kanaaf qabduu duubaa fi sakatta'iinsi fayyaa galmee barreessuu dhiisu /var/lib/docker, sana booda yookaan remount /var/lib/docker (ykn hundee / qoqqoodinsa) dubbisa qofa ( .sudo mount -o remount,ro /) ykn suuraa jildii duumessa sadarkaa uggura battalaa fudhachuu (AWS EBS Snapshot, . GCP Persistent Disk Snapshot, . DigitalOcean Volume Snapshot) osoo waan tokko hin tuqin dura.
  4. Yoo Kubernetes irratti jirtan (kubectl delete pvc ykn kubectl delete namespace), Jildii Itti fufiinsa qabu (PV) . ReclaimPolicy (kubectl get pv) battalumatti:
  5. Yoo kan PV qaba ture persistentVolumeReclaimPolicy: Retain, deetaan kee hin haqamu: kan PV salphaatti gara Released haalaa fi diskiin duumessaa kee (EBS, . Azure Disk, . Ceph RBD, . NFS) dhibbeentaa 100n hin tuqamne.
  6. Yoo ta'ellee kubectl delete pvc keessatti qabamee jira ** .Terminating**, Kubernetes Xumuraa (kubernetes.io/pvc-protection) hanga Pod kamiyyuu ammallee PVC sana wabeeffatutti konkolaachisaan CSI kuusaa jala jiru akka hin haqne uggu. Hanga deetaa Pod hojjechaa jiru keessaa waraabdutti Pod hin haqinaa.
  7. Fakkii qoqqoodinsa ugguraa jala jiru (dd / . ddrescue SSH irratti) gara diskiin alaa ykn jildii duumessaa adda ta'etti osoo hin hojjetiin dura ext4magic, . extundelete, ykn PhotoRec: Gonkumaa faayilii boctoota faayilii firii barreessan kutaa diskii walfakkaataa irraa deebifachaa jirtu irratti hin hojjetiin /var/lib/docker/volumes.
  8. Haala kilaastara Kubernetes manca'eef ykn akka tasaa haxaa'ameef (kubectl delete crd / . namespace), dhaabadhaa kube-apiserver fi isa haaraa kee deebisi etcd suuraa (etcdctl snapshot restore): Yoo haala kilaastaraa keessa etcd kan haxaa'ame osoo jildii kuusaa duumessaa jala jiru ammallee jiruu, deebisuu etcd hunda fayyisa PV, . PVC, . Secret, fi ConfigMap meeshaalee yeroo tokkotti.

Danger

Gonkumaa kan... kubernetes.io/pvc-protection ykn kubernetes.io/pv-protection finalizer waliin kubectl patch ... -p '{"metadata":{"finalizers":null}}' yeroo PVCn tokko keessa maxxane Terminating: Finalizer sun qofatu cloud CSI driver kee eegudha (aws-ebs-csi-driver, . pd.csi.storage.gke.io, . Longhorn, . Rook-Ceph) haardwaara baasuu irraa DeleteVolume Waamicha API diskiin oomishaa kee balleessuuf. Osoo PVCn keessaa qabamee jiruu Terminating, Pod ammallee hojjechaa jira fi sagaleen ammallee fe'amee jira: fiigi kubectl exec ykn kubectl cp (ykn pg_dump / . mysqldump) battalumatti osoo Pod hin xumuramin dura kuusdeetaa kee dhibbeentaa 100 baraaruuf.


Muka murtii: jildii Docker haqame, . overlay2 laayibarii, ykn Kubernetes PVC triage

Adeemsi qabduu ammallee lubbuun jiraachuu isaa, jildii diskiin naannoo ykn kuusaa CSI duumessaatiin duubatti deebi'uu isaa, fi keessummeessitoota sirna faayilii kam irratti hundaa'uun daandii deebisanii dhaabuu kasaaraa zeeroo isa saffisaa filachuuf chaartii yaa'aa kana fayyadami /var/lib/docker: 1.1.

flowchart TD
    Start["Deetaan Omishaa Ajaja Docker ykn Kubernetes Haquu Booda Bade"] --> WhichEnv{"Waltajjii & Ajajni Kamtu Kasaaraa Kaase?"}

    WhichEnv -->|"Docker: Qabduu Ammallee Hojiirra Jira (Faayilota Jildii/Qabeessaa Keessaa Hin Hidhamne) ."| ProcRescue["Baraaruu Ibsitoota Faayilii Hin hidhamne karaa sudo lsof +L1 fi /proc/PID/fd/N ykn /proc/PID/root/ banaa."]

    WhichEnv -->|"Docker: Qabduu Dhaabbate & Jildii Haqameera (gadi qindeessuu -v / prune --volumes) ."| StopDocker["Achumaan Fiigi: sudo systemctl dhaabbii docker.socket qabduu docker"]

    WhichEnv -->|"Kubernetes: kubectl pvc / pv / haalatafulset / iddoo maqaa haquu"| K8sCheck{"Pod Ammallee Fiigaa Jiraa YKN PVC Terminating Keessatti Qabameera?"}

    K8sCheck -->|"Eeyyee: Pod Ammallee Hojiirra Jira (Finalizer CSI Delete Ugguruu)"| K8sExec["Pod HIN Haquu -> kubectl exec / pg_dump / tar stdout irratti gara Disk Local Battalumatti fiigi"]
    K8sCheck -->|"Lakki: Pod Gone -> Check kubectl argachuuf pv"| ReclaimCheck{"Imaammanni PV Deebisuu Maal Ture?"}

    ReclaimCheck -->|"Tursi (Haala PV = Gadi lakkifame) ."| ClearClaimRef["100% Deetaan Hin Tuqamne -> PV Gulaali spec.claimRef.uid Haquuf -> Irra deebi'ii PVC Haaraatti hidhu"]
    ReclaimCheck -->|"Haquu (Duumessa EBS / PD / Longhorn / Local-Path) ."| CloudOrLocal{"Jildii CSI Duumeessaa moo Diskii Keessummeessituu Naannoo?"}

    CloudOrLocal -->|"CSI duumessaa (AWS EBS / GCP / Azure / Ceph) jedhamu kan jedhu."| CloudSnap["Konsoolii Duumessaa Irra Deebiin Fayyadamaa / Suuraalee EBS Ofumaan / Kosii Ceph RBD (rbd trash ls) ilaali."]
    CloudOrLocal -->|"Diskii Noodii Naannoo (karaa-naannoo / karaa keessummeessituu) ."| StopDocker

    StopDocker --> RemountRO["Qoodinsa Keessummeessituu Irra Deebi'ii fe'i Dubbisa Qofa (mount -o remount,ro) YKN Fakkii Ugguraa SSH irratti Dhangala'i"]
    RemountRO --> HostFS{"Sirni Faayilii Maal /var/lib/docker Keessummeessa?"}
    HostFS -->|"dheerina4"| Ext4Rec["Debugfs / ext4magic fayyadami Joornaalii Inoodii Dabarsa Gara duubatti deebi'uu (-chaappaa yeroo) ."]
    HostFS -->|"XFS / Btrfs jedhamuun beekama"| CarveRec["Hundee Btrfs / xfs_irecover / Boca Mallattoo Dhuunfaa SQLite, Tuullaa Postgres, ykn InnoDB .ibd fayyadami"]

Marsaa 1ffaa: Akkaataa Docker fi Kubernetes qabatamaan jildii disk irratti haqan

Ajaja deebisuu kamiyyuu hojjechuu dura, deetaan kee qaamaan keessummeessituu Liinux irratti eessa akka jiraatee fi ajajni haquu qabatamaan maal akka tuqe hubadhu:

Gosa Kuusaa & Ajaja Haquu Daandii Sirna Faayilii Keessummeessituu Noodii Liinux irratti Ajajni Haquu Dhugumatti Maal Hojjete Mala Battala Fayyeessuu
Jildii Docker moggaafame (docker volume rm ykn docker compose down -v) /var/lib/docker/volumes/<vol_name>/_data Faayilota keessa jiran unlink godhe _data/ fi galtee galmee irraa haqee /var/lib/docker/volumes/metadata.db (boltdb). Docker hatattamaan dhaabi, irra deebi'ii fe'i /var/lib/docker dubbisa qofaaf, fi inodes hin hidhamne karaa ext4magic / . debugfs ykn mallattoo bocuu.
Jildii Docker Maqaa hin beekamne (docker run -v /var/lib/mysql + docker rm -v ykn docker system prune --volumes) /var/lib/docker/volumes/<64-char-hex-id>/_data docker system prune --volumes jildii maqaa hin qabnee fi maqaa hin qabne hunda yoo xiqqaate qabduu jiruun yeroo ammaa hin wabamne haqa. Docker hatattamaan dhaabaa; yoo qabduu kan biroo dhaabbate kan jildii isaanii hin ciramne qabaatte, hafe ilaali /var/lib/docker/volumes/*/_data galmeewwan dursa osoo bilookii hin ramadamne bocuu dura.
Laayibarii Barreeffama Qabduu (docker rm <container> yeroo deetaan jildii tokkoon alatti barreeffame) /var/lib/docker/overlay2/<layer-id>/diff/ Gubbaa qabduu sanaa unlinked diff/ galmee keessaa overlay2 konkolaachisaa kuusaa. Docker hatattamaan dhaabiitii muka galmee hin hidhamne irraa deebifadhu ext4 joornaalii ykn XFS blocks ta’a.
Docker Desktop macOS ykn Windows irratti (docker system prune --volumes) Fakkii diskiin maashinii dhugaa tokkoo keessaa: -/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw (macOS) ykn %LocalAppData%\Docker\wsl\disk\docker_data.vhdx (Windows WSL2) jedhu. Ergame unlink() VM Liinux keessaa, fi yoo discard/TRIM irratti socho'aa jira Docker.raw / . docker_data.vhdx, faayilii keessummeessituu keessatti qaawwa dhiphaa rukute. Sekondii 5 keessatti Docker Desktop keessaa ba'i, waraabi Docker.raw ykn docker_data.vhdx gara diraayivii alaatti, fi fiigi ext4magic / . PhotoRec fakkii diskiin dhugaa irratti.
Kubernetes PVC waliin Delete Imaammata Deebisuu Ceph RBD irratti (Rook-Ceph) ykn Longhorn . Kuusaa OSD Ceph (rbd) yookaan /var/lib/longhorn/replicas/. Yoo csi-rbdplugin qaba trash dandeessifame (rbd trash), fakkiin RBD gara bakka kosii Ceph tti socho'a; yoo kana hin taane uggurri hin kaartaa ta'u. Fiigi rbd trash ls --pool <pool> keessaa rook-ceph-tools pod fi deebisuuf waliin rbd trash restore.

Marsaa 2: Faayilota kuusdeetaa banaa qabduu ammallee hojjechaa jiru irraa baraaruu (/proc/<pid>/fd/) .

Eegaa: yeroo ammaa kana qabduun sun ammallee hojjechaa jiraa? Yeroo baayyee, injinariin tokko iskiriiptii godaansa aplikeeshinii, hojii kroon qulqulleessuu, ykn maanuwaalii hojjeta rm -rf /var/lib/postgresql/data/* ykn rm /app/data/production.sqlite3 qabduu hojjechaa jiru keessa, ykn galmee keessummeessituu hidhuu-fee'aa jala jiru haqa /opt/app/data osoo qabduu ofii isaatii (postgres, . mysqld, . mariadbd, . redis-server, . mongod, . gunicorn, . node) ammallee ka'ee fiigaa jira.

Liinux keessatti, faayilii diskiin irraa hin haqamu yeroo rm ykn unlink() jedhama. Blookiiwwan diskiin isaa fi inoodii isaa hanga adeemsa dhumaa ibsituu faayilii banaa qabatutti dhibbeentaa 100 ramadamee fi dubbifamuu danda'u ta'ee hafu (FD) gara sana inode cufa ykn ba'a.

Tarkaanfii 1: ID Adeemsa keessummeessituu barbaadi (PID) kan adeemsa qabduu

Noodii keessummeessituu Liinux irratti (qabduu keessa miti), keessummeessituu barbaadi PID kan kuusdeetaa ykn adeemsa iyyannoo keessanii:

sudo lsof +L1 | grep -E "postgres|mysqld|mariadbd|sqlite|redis|mongo|node|python|java"
Bu'aa isaa ilaalaa:
COMMAND     PID   USER   FD   TYPE DEVICE  SIZE/OFF NLINK    NODE NAME
mysqld    18492    999   14u   REG  259,1 482344960     0 1849201 /var/lib/mysql/app_prod/users.ibd (deleted)
mysqld    18492    999   15u   REG  259,1 125829120     0 1849202 /var/lib/mysql/app_prod/orders.ibd (deleted)
mysqld    18492    999   16u   REG  259,1  79691776     0 1849190 /var/lib/mysql/ibdata1 (deleted)
python3   22104   1000    4u   REG  259,1  89128960     0 3102944 /data/production.sqlite3 (deleted)
Tarree ilaalaa NLINK: jedha ** .0, fi maqaan faayilii ** tiin xumurama.(deleted). Faayilli guutummaatti irraa badeera ls /var/lib/docker/volumes/..., ammas baayitii tokko tokko hunda (482 MB in. keessatti users.ibd, . 89 MB in. keessatti production.sqlite3) ammallee keessa lubbuun jira /proc/<PID>/fd/<FD>.

Tarkaanfii 2: Faayilota kuusdeetaa hin hidhamne kallattiin keessaa waraabuu /proc/<PID>/fd/

Qabduu hin dhaabin ykn irra deebi'ii hin jalqabiin. Adeemsi ammallee osoo hojjechaa jiruu, ibsitoota faayilii raw kallattiin gara galmee nageenya qabu keessummeessituu kee irratti waraabi:

sudo mkdir -p /root/proc_emergency_rescue

# Example 1: Rescuing an unlinked SQLite3 database (PID 22104, FD 4)
sudo cp /proc/22104/fd/4 /root/proc_emergency_rescue/production.sqlite3
# Check if PID 22104 also holds the -wal file open (e.g. FD 5) and copy it too:
sudo cp /proc/22104/fd/5 /root/proc_emergency_rescue/production.sqlite3-wal

# Example 2: Automatically rescuing ALL open (deleted) MySQL/Postgres files for PID 18492
for fd in /proc/18492/fd/*; do
    target=$(sudo readlink "$fd" 2>/dev/null)
    if echo "$target" | grep -q "(deleted)"; then
        fd_num=$(basename "$fd")
        clean_name=$(echo "$target" | sed 's/ (deleted)//; s/\//_/g')
        echo "Rescuing FD $fd_num -> $clean_name"
        sudo cp "$fd" "/root/proc_emergency_rescue/${fd_num}${clean_name}"
    fi
done

Tarkaanfii 3ffaa: Kan caalu: Live logical dump (pg_dump / . mysqldump / . .backup) osoo konteenara FDs hin cufin dura

Yoo postgres ykn mysqld ammallee faayiloota daataa isaa memory keessatti banamee hojjechaa jira fi /proc/<PID>/fd/, dursa daampii loojikii jiraataa socket unix ykn walqabsiisa TCP jiru irratti hojjechuu yaali:

# If the database engine can still read its open file descriptors:
docker exec <container_name> pg_dumpall -U postgres > /root/proc_emergency_rescue/live_dump.sql
# Or for MySQL:
docker exec <container_name> mysqldump -u root -p --all-databases --single-transaction > /root/proc_emergency_rescue/live_mysql.sql
(Hub: PostgreSQL ni banama, ni cufama .1, . .2 faayiloota adeemsa hojjetaa hunda keessatti daayinamiikiin kutaa, kanaaf pg_dump gabatee hin kuufamin irratti kufaa ta'uu danda'a; gaaffii SQL jiraataa banaa hunda waraabuu wajjin walitti makuu /proc/<pid>/fd/* qaxxaamuree hundaa postgres PIDwwan duubbee mucaa deetaa tuullaa gabatee guddaa ta'uu danda'u qusata.)


Marsaa 3: Volume Docker haqame deebisuu ext4 ykn XFS erga meeshaan sun dhaabatee booda

Osoo fiigdee hoo docker compose down -v ykn docker system prune --volumes, kanaaf meeshaan sun duraan dhaabbatee jira fi hunda /proc/<pid>/fd/ ibsitoonni cufamanii jiru? Amma fiigicha barreeffamoota diskiin duubaa keessummeessituu Liinux irratti hojjetamu irratti argamta.

Tarkaanfii 1: Sirna faayilii keessummeessituu Linux sekondii 10 keessatti freeze gochuu

  1. Docker, containerd, kubelet, fi cron hatattamaan dhaabi kanaaf qabduu, healthcheck, ykn log rotator kamiyyuu baayitii biraa itti hin barreessu /var/lib/docker: 1.1.
    sudo systemctl stop docker.socket docker.service containerd.service cron.service
    
  2. Meeshaan ugguraa fi sirni faayilii kam akka qabate mirkaneessi /var/lib/docker:
    df -Th /var/lib/docker
    
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/nvme0n1p1 ext4  100G   42G   58G  42% /
    
  3. Qooda Dubbisa Qofa irra deebi'ii fe'i (ykn fakkii qoqqoodinsa raw SSH irratti gara maashinii biraatti yaa'i):
  4. Yoo /var/lib/docker qoqqoodinsa ofii isaatii ykn jildii LVM irratti argama (fakkeenyaaf /dev/nvme0n1p2 ykn /dev/mapper/vg0-docker), battalumatti dubbisa qofaaf irra deebi'ii kaa'i:
    sudo mount -o remount,ro /var/lib/docker
    
  5. Yoo /var/lib/docker hundee irra jira / qoqqoodinsa (/), qoqqoodinsa hundee dubbisa qofaaf dirqisiisuu yaali, kernel Magic SysRq trigger fayyadamuun (echo u | sudo tee /proc/sysrq-trigger) yookaan sudo mount -o remount,ro /.
  6. Yoo VPS duumessaa (AWS EC2, GCP, DigitalOcean, Hetzner, Linode) irra jirtan: Achumaan gara konsoolii weeb duumessaa keessanii deemuun Create Snapshot kan jildii ugguraa sarvarii irratti cuqaasaa (ykn meeshaa ugguraa raw SSH irratti gara sarvarii lammaffaatti dabarsuu: sudo dd if=/dev/nvme0n1p1 bs=4M status=progress | gzip -1 | ssh user@backup-server "cat > /mnt/storage/docker_host_raw.img.gz").

Tarkaanfii 2: Daataan keessan ammallee volumii BIRAA unpruned keessa taa'ee jiraachuu isaa ykn overlay2 laayibarii

Uggura diskiin hin ramadamne bocuu dura, kuusdeetaan kee dhugumatti fe'iinsa hidhaa ykn jildii maqaa adda ta'e kan lubbuun hafe keessatti akka hin kuufamne mirkaneessi:

# Search the entire /var/lib/docker tree read-only for any surviving database files:
sudo find /var/lib/docker -name "PG_VERSION" -o -name "ibdata1" -o -name "*.sqlite*" -o -name "*.db" -o -name "dump.rdb" -o -name "WiredTiger" 2>/dev/null
Torban torbaniin bulchitoonni erga fiiganii booda ni rifatu docker volume rm app_db_data, waliin argachuuf qofa find /var/lib/docker kan jedhu docker-compose.yml qabatamaan uume ture projectname_app_db_data (kan ammallee dhibbeentaa 100 diskiin irratti hin tuqamne) osoo app_db_data jildii durii ji’a jaha duraa kan hin fayyadamne ture.

Tarkaanfii 3: Galmeewwan jildii Docker hin hidhamne irra deebisuu ext4 fayyadamuun ext4 Joornaalii (ext4magic fi debugfs) .

Yoom docker volume rm ni haqa /var/lib/docker/volumes/<vol_name>/_data irratti an ext4 sirna faayilii, . ext4 agarsiistota ugguraa kallattii zeeroo baase (i_block / hundee muka bal'ina) gabatee inode jiraataa keessatti. Haa ta'u malee, ext4 joornaalii (inode <8>, akkaataa adda addaatiin 128 MB gara 1024 MB circular ring buffer) ammallee waraabbii seena qabeessa gabatee inode sirrii fi uggura galmee mirga duraa irraa qaba docker compose down -v ajjeefameera.

+-------------------------------------------------------------------------+
| HOW ext4magic RECOVERS A DELETED DOCKER VOLUME FROM THE EXT4 JOURNAL    |
|                                                                         |
| Live Inode Table on Disk (After docker volume rm):                      |
|   Inode #918402 (users.ibd): [Size = 0, Extent Pointers = ZEROED]       |
|                                                                         |
| Ext4 Journal Ring Buffer (Inode <8> on Disk):                           |
|   Transaction #41902 (10 mins ago):                                     |
|   Inode #918402 (users.ibd): [Size = 482MB, Extents = Blocks 9000..9999]|
|                                                                         |
| -> ext4magic reads the old Inode Copy from Journal Transaction #41902   |
|    and extracts Blocks 9000..9999 directly to your rescue drive.        |
+-------------------------------------------------------------------------+

Fiigi ext4magic qoqqoodinsa dubbisa qofa kee irratti (ykn .img waraabbii suuraa sarvarii lammaffaa irratti), chaappaa yeroo ifteessuudhaan (-a) daqiiqaa 5 duraa fiigdee irraa docker compose down -v ykn docker system prune --volumes: 1.1.

# Install ext4magic on your rescue machine (never on the affected partition)
sudo apt-get install -y ext4magic e2fsprogs

# Dump the ext4 journal from the frozen partition / image to a file in RAM (/dev/shm)
sudo debugfs -R "dump <8> /dev/shm/ext4_journal.copy" /dev/nvme0n1p1

# Recover all files deleted under var/lib/docker/volumes after (Current Time - 15 minutes)
sudo mkdir -p /mnt/external_rescue/docker_recovered
sudo ext4magic /dev/nvme0n1p1 \
  -j /dev/shm/ext4_journal.copy \
  -f var/lib/docker/volumes \
  -a $(date -d "-15 minutes" +%s) \
  -r -d /mnt/external_rescue/docker_recovered
- -j /dev/shm/ext4_journal.copy: Suuraa joornaalii battaluma Docker dhaabdee booda RAM keessatti qusatte dubbisa. - -f var/lib/docker/volumes: Muka galmee jildii Docker sirrii irratti xiyyeeffata (hubachiisa: dursaa dhiisi / in. keessatti ext4magic daandii fira). - -a $(date -d "-15 minutes" +%s): Hima ext4magic muka galmee irra deebi'ee ijaaruuf waraabbiiwwan inode fayyadamuun daqiiqaa 15 dura sirrii ta'e (haquu tasa dura). - -r: Galmeewwan guutuu bakka uggurri hin barreeffamne deebisa; yoo -r faayilii gartokkoon irra barreeffame dhaba, dabarsoo lammaffaa bakka buusuun fiigi -r waliin -m (boca falfalaa + haala walmakaa joornaalii).

Tarkaanfii 4: Faayilota SQLite, PostgreSQL, ykn MySQL InnoDB raw bocuu yeroo joornaalichi marfame (XFS ykn ext4) .

Warning

Maaliif XFS hin deeggaru ext4magic fi battalumatti dubbisa qofaaf hiikuu barbaada: Faallaa ext4, kan kooppii inoodii baayitii 256 guutuu gara joornaalii isaatti barreessu, . XFS deelta yaada meetadaataa galmeessee fi aggaammiidhaan irra deebi'ee inode B-muka bilisa ta'e fayyadama (agi). Yoo /var/lib/docker irra taa'a XFS qoqqoodinsa (durtii RHEL, Rocky Linux, AlmaLinux, fi Amazon Linux irratti), hiikuu /var/lib/docker ykn irra deebi’anii kaa’uu / sekondii muraasa keessatti dubbisuun tarkaanfii tokkicha barbaachisaa ta’e bocuu durati.

Yoo keessummeessichi ** fayyadame.XFS** ykn yoo kan ext4 joornaalii duraan agarsiistota inode irratti marfame, mallattoo fi caasaa bocuu fakkii diskiin raw irratti fayyadami (docker_host_raw.img):

  1. Kuusaawwan Deetaa SQLite3 tiif (.sqlite, . .db - fkn, Vaultwarden, Nextcloud, Gargaaraa Manaa, Gitea, Grafana): Kuusdeetaan SQLite3 hundi mataduree ASCII baayitii 16 kan hin dogoggorreen baayitii 0 fuula isaa isa jalqabaa kiiloo baayitii 4 irratti jalqaba: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 ("SQLite format 3\0"), fi hammangaa fuula kuusdeetaa sirrii (Bytes 16..17, akkaataa adda addaatiin 4096) fi guddina kuusdeetaa waliigalaa fuula (Bytes 28..31, big-endian 32-bit integer) sirriitti mata duree walfakkaataa sana keessa.
  2. Fiigi PhotoRec waliin [File Opt] -> [x] sqlite dandeessifame, ykn kallattiin kutaa sana sakatta'i grep -ab "SQLite format 3" ofseeti baayitii sirrii faayilii SQLite kee haqame barbaaduu fi ittiin baasuuf dd: 1.1.
    # Find the exact byte offsets of every "SQLite format 3" header on the partition:
    sudo grep -ab "SQLite format 3" /dev/nvme0n1p1
    
    Erga baafamee booda fiigi sqlite3 carved.db ".recover" | sqlite3 repaired.db fuula baala B-muka hin tuqamne hunda irra deebi’anii ijaaruuf.

Tip

Akkaataa sirriitti shallagnu dd guddina baayitii faayilii SQLite3 hin hidhamne mata duree isaa irraa: Al tokko grep -ab "SQLite format 3" ofseeti baayitii jalqabaa siif kenna OFFSET kuusdeetaa SQLite kee kan haqame, baayitii dubbisi 16..17 (uint16 big-endian Guddina Fuulaa, fkn, 0x1000 = 4096 baayitii) fi baayitii 28..31 (uint32 big-endian Lakkoofsa Fuulaa, fkn, . 25000 fuula) fayyadamuun hexdump -C -s OFFSET -n 32. Baay’isuu Page Size x Page Count dheerina baayitii sirrii itti darbuuf siif kenna dd (iflag=skip_bytes,count_bytes) yeroo faayilii diskiin irratti walitti aanee jiru.

  1. MySQL / MariaDB InnoDB tiif (.ibd faayiloota gabatee): InnoDB hunda .ibd gabatee tartiiba kan of keessaa qabudha 16 KB (16,384 baayitii) fuula kanneen of keessaa qaban FIL_PAGE_INDEX (0x45BF) mataduree fi adda ta'e gabatee space_id. Percona / TwinDB fayyadamuu ** .undrop-for-innodb (stream_parser + c_parser)** meeshaa scan gochuuf /dev/nvme0n1p1 hundaaf 16 KB Fuulota indeksii InnoDB fi tarree hunda kallattiin gara faayilii TSV/SQL irra deebi'anii galchuuf gadi darbadhu.
  2. Faayilota Tuullaa PostgreSQL tiif ($PGDATA/base/<db_oid>/<relfilenode>): PostgreSQL tokkoon tokkoon gabatee akka walitti fufiinsaatti kuusa 8 KB (8,192 baayitii) tuullaa fuula of keessaa qabu PageHeaderData (pd_lower, . pd_upper, . pd_special). Fayyadamaa ** .pg_filedump** ykn ** .pglazarus / . pdu** naannoowwan diskiin hin ramadamne sakatta'uuf 8 KB fuulawwan haalata tuuppii tarjaa gabatee keetii wajjin walsimu (HeapTupleHeaderData) fi tarreewwan irra deebi’anii ijaaruu.

Marsaa 4ffaa: Kubernetes PVC, PV, fi etcd Suuraa Yeroo Hatattamaa Fayyisuu

Kubernetes keessatti (EKS, . GKE, . AKS, . k3s, . RKE2, . kubeadm, . OpenShift), akka tasaa PersistentVolumeClaim (kubectl delete pvc), Tuuta Haalata, ykn Iddoo Maqaa guutuu (kubectl delete ns prod) Arkiteekcharii baay'ee adda ta'e kan of danda'e Docker irraa hordofa.

Seenaa A: PVCn agarsiisa Terminating (Lubbuu Baraatuu Xumuraa)

Fiigi: 1.1.

kubectl get pvc -n <namespace>
Yoo kan STATUS tarreen ** jedha.Terminating**, hafuura baafannaa: daataan keessan hanga ammaatti HIN haqamne. - Maalif? Kubernetes PVC hunda uumame Erga Kubernetes 1.9 ofumaan hammata finalizers: [kubernetes.io/pvc-protection]. - Hanga Pod tokko ammallee PVC sana fe'aa jirutti, too'ataan Kubernetes haquu PVC xumuruu didee gonkumaa kan konkolaachisaa CSI hin waamu DeleteVolume RPC. - Tarkaanfii Battalaa: Pod NOT haquu ykn deebi'ee jalqabuu, fi finalizer NOT patch out godhi. Achumaan deetaa hunda Pod hojjechaa jiru keessaa gara maashinii naannoo keetii ykn baaldi S3tti waraabi:
# Stream a compressed tar backup or pg_dump out of the still-running pod immediately:
kubectl exec -n <namespace> <pod-name> -- pg_dumpall -U postgres > ./rescued_k8s_db.sql
# Or tar an entire mounted volume directory out over stdout:
kubectl exec -n <namespace> <pod-name> -- tar czf - /var/lib/postgresql/data > ./rescued_pvc_files.tar.gz

Haala B: PVCn haqame, fi kubectl get pv keessatti PersistentVolume agarsiisa Released mootummaa (ReclaimPolicy: Retain) .

Fiigi: 1.1.

kubectl get pv
Yoo Jildii Itti fufiinsa qabu (pv-prod-postgres) ammallee waliin tarreeffameera STATUS: Released (sababni isaas StorageClass isaa fayyadameera reclaimPolicy: Retain), Dataan keessan dhibbeentaa 100 ammallee diskiin jala jiru irratti osoo hin tuqamin taa'ee jira. Haa ta'u malee, Kubernetes PVC haaraan a Released PV sababni isaas PVn ammallee a spec.claimRef gara PVC'wwan durii haqamanitti akeekuudhaan UID.

Akkaataa itti a Released PV Available ammas sekondii 10 keessatti kasaaraa deetaa zeeroo ta'een: 1. Wanticha PersistentVolume gulaaliitii haqi spec.claimRef block: 1. .

kubectl patch pv <your-pv-name> --type json -p '[{"op": "remove", "path": "/spec/claimRef"}]'
2. Fiigi kubectl get pv ammas: haalli battalumatti ** irraa jijjiirama.Released** hanga ** .Available**. 3. Kee irra deebi'ii uumi PersistentVolumeClaim (ibsuudhaan volumeName: <your-pv-name> fi dandeettii walsimsiisuu/maqaaGittaa kuusaa). Faayilota hunda osoo hin tuqamne battalumatti PV jirutti ni hidha.

Haala C: Haala kilaastara Kubernetes haxaa'ame an irraa deebisuun etcd suuraa (etcdctl snapshot restore) .

Osoo namni fiige hoo kubectl delete namespace prod ykn helm uninstall fi Kubernetes manifests, Secrets, ConfigMaps, fi hiika PV 200 ofumaan bulchu irratti haxaa'e kubeadm, . k3s, ykn RKE2 xiyyaara to'annoo?

  1. Kan isa haaraa barbaadi etcd suuraa (durtii keessatti /var/lib/rancher/k3s/server/db/snapshots/, . /var/lib/rancher/rke2/server/db/snapshots/, ykn sagantaa qabdan /var/backups/etcd/snapshot.db).
  2. Tuuta jiraataa osoo hin tuqin dura qulqullina suuraa mirkaneessi:
    ETCDCTL_API=3 etcdctl snapshot status /path/to/snapshot.db --write-out=table
    
  3. Dhaabadhaa kube-apiserver fi etcd noodi(wwan) xiyyaara to'annoo irratti:
  4. Gaafa kubeadm (pods static): Socho'uu /etc/kubernetes/manifests/kube-apiserver.yaml fi /etc/kubernetes/manifests/etcd.yaml yeroodhaaf gara /root/manifests_hold/ kanaafuu kubelet meeshaalee lamaan qulqullinaan dhaabsisa, sana booda ol deebi'a /var/lib/etcd gara /var/lib/etcd.bak.
  5. Gaafa k3s: Fiigi sudo systemctl stop k3s fi sudo k3s server --cluster-reset --cluster-reset-restore-path=/path/to/snapshot.
  6. Deebisee kan... etcd galmee deetaa irratti kubeadm:
    sudo ETCDCTL_API=3 etcdctl snapshot restore /path/to/snapshot.db \
      --data-dir=/var/lib/etcd \
      --name=<control-plane-node-name> \
      --initial-cluster=<node-name>=https://<node-ip>:2380 \
      --initial-advertise-peer-urls=https://<node-ip>:2380
    
  7. Socho'aa etcd.yaml fi kube-apiserver.yaml deebi'ee gara /etc/kubernetes/manifests/. Sekondii 30 keessatti, . kube-apiserver deebi'ee kan deebi'e waliin wal qunnamsiisa etcd kuusaa fi wanti Iddoo Maqaa, Iccitii, ConfigMap, fi PersistentVolume haqame hundi deebi'ee mul'ata.

Marsaa 5: Jildii Docker fi Kubernetes akka tasaa akka hin haqamne jabeessuu

Kuusdeetaan oomishaa kee erga deebi'ee booda, dogongorri barreessuu CLI tokko lammata gonkumaa jildii kallattiin haquu akka hin dandeenyeef eegdota ijaarsaa afran kana hojiirra oolchi:

  • Oomisha hunda jijjiiri Kubernetes StorageClass irraa reclaimPolicy: Delete gara reclaimPolicy: Retain: Akka durtiitti, Gitoota Kuusaa duumessa keessaa ijaarame (gp2, . gp3, . standard-rwo) durtii gara reclaimPolicy: Delete, jechuun PVC haquun diskiin duumessaa balleessa jechuudha. Uumuu a StorageClass waliin reclaimPolicy: Retain (ykn PVwwan jiran ittiin patch gochuu kubectl patch pv <pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}') kanaaf PVC ykn Namespace haquun gonkumaa jildii ugguraa jala jiru hin haqu.
  • AWS EBS Recycle Bin / GCP Snapshot Schedules / Velero CSI Snapshots waliin dandeessisi: AWS EBS Recycle Bin dandeessisuun yoo konkolaachisaan CSI bilbilellee sagalee EBS haqame kamiyyuu guyyoota 7 hanga 30tti qabata DeleteVolume.
  • Gonkumaa hin fayyadaminaa docker system prune --volumes iskiriiptii qulqulleessuu ofumaan ykn fiigdota CI/CD keessatti: Yoo qabduun kuusdeetaa oomishaa yeroo gabaabaaf kufe (Exited (1)) yeroo sirrii hojiin cron tokko hojjetutti docker system prune -a --volumes -f, Docker jildii isaa maqaa hin qabne "akka hin fayyadamne" jedhee fudhata, dhaabbataadhaan haqa. Strip --volumes iskiriiptii qulqulleessuu hunda irraa.
  • Faayidaa hidhaa keessummeessituu ifa ta'e fayyadami (/srv/prod_data/postgres:/var/lib/postgresql/data) ykn kuusdeetaa alaa bulfamu fe'iinsa hojii oomisha haalaa: Faallaa /var/lib/docker/volumes/, galmeewwan hidhuu-fe'uu ala keessummeessi /var/lib/docker/ kan gonkumaa hin tuqamne docker compose down -v, . docker volume rm, ykn docker system prune --volumes.

Lakkoofsa balaa tasaa naannoo fi pirootokoolii ejensii

Yeroo haquun kuusaa konteenara ykn Kubernetes hojii kilinikaa hospitaalaa, ergaa nageenya hawaasaa, ykn daataa dhuunfaa qajeelfama qabu irratti dhiibbaa geessisu, battalumatti hammachuu:

  • Ameerikaa fi Kanaadaa: Bilbila 911 yoo kufaatiin kilaastara konteenaraa hordoffii dhukkubsataa kilinikaa, sirna EHR, ykn ergaa hatattamaa hojii dhabsiise. Bu’uuraalee konteenara hamaa haxaa’uu ykn taateewwan saayibarii CISA (1-844-Say-CISA / . cisa.gov/report) ykn Giddugala Nageenya Saayibarii Kanaadaa (1-833-CYBER-88).
  • Yunaayitid Kingidam: Bilbila 999 balaa lubbuu ykn bu’uuraalee NHS murteessoo ta’aniif. UK GDPR jalatti, dhaabbataadhaan balleessuun ykn dhabamuun daataa dhuunfaa bakka bu’aa deebi’ee argamu malee beeksisa cabsuu sa’aatii 72f ICO (0303 123 1113).
  • Gamtaa Awurooppaa: Bilbila 112 biyyoota miseensa Gamtaa Awurooppaa hunda keessatti. Dhaabbileen Qajeelfama NIS2 jala jiran tajaajilli cimaan erga addaan citee booda sa’aatii 24 keessatti akeekkachiisa dursaa CSIRT biyyaalessaa isaaniif dhiyeessu qabu, akkasumas daataa dhuunfaa dhaabbataa dhabuun sa’aatii 72 keessatti gabaasa GDPR Keewwata 33 kakaasa.
  • Awustiraaliyaa fi Niwuu Ziilaand: Bilbila 000 Awustiraaliyaa keessatti ykn 111 Niwuu Ziilaanditti; taateewwan bu’uuraalee misoomaa murteessoo ta’an ACSC (1300 CYBER1).
  • Hindii fi Eeshiyaa-Paasifiik: Bilbila 112 Hinditti deebii hatattamaa argachuuf; taateewwan nageenya duumessaa ykn konteenaraa CERT-In (incident@cert-in.org.in) dirqama sa'aatii 6 keessatti.

Gaaffiiwwan yeroo baay’ee gaafataman

Ni godha docker compose down -v fe'iinsa hidhaa keessummeessituu haquu (./data:/var/lib/mysql) moo jildii Docker Maqaa fi Maqaa Hin Qabne qofa?

`docker compose down -v` QOFA jildiilee maqaa qaban kanneen keessatti labsaman haqa `volumes:` kutaa `docker-compose.yml` fi Jildii Maqaa hin beekamne kan qabduuwwan irratti maxxanan; it gonkumaa faayilii fe'iinsa hidhaa keessummeessituu keessaa haqa (kan akka `- /opt/mysql_data:/var/lib/mysql` ykn `- ./postgres_data:/var/lib/postgresql/data`). Yoo faayilii qindeessuu kee daandii keessummeessituu irraa eegalee fayyadame `/` ykn `./`, galmee sana ammuma keessummeessituu irratti ilaali: faayiloota kee ammallee dhibbeentaa 100 hin tuqamne.

Maaliif akkas godhe docker system prune --volumes yeroon jijjiiramaa naannoo haaromsuuf qabduu daqiiqaa 2 qofa dhaabe jildii kuusdeetaa koo haquu?

Garaagarummaa gidduu jiru of eeggannoodhaan eegaa `docker stop` fi `docker rm`: yoo meeshaan tokko qofa ta’e `Stopped / Exited` (keessatti mul'ata `docker ps -a`), . `docker system prune --volumes` ni godha miti qabduu dhaabate ammallee waan isaan wabeef jildii isaa haqi. Haa ta'u malee, yoo fiigde `docker rm ` (qabduu alaabaa haaraatiin irra deebi'anii uumuuf) ykn yoo darbite `docker system prune -a --volumes` (kan jalqaba qabduu dhaabbate hunda haqu fi sana booda jildii hunda kana booda qabduu kamiyyuu irratti hin maxxanne haqa), jildichi milisekondii qabduu dhaabate baafame "dangling" ta'ee battaluma sanatti haxaa'e.

Mac irratti Docker Desktop keessaa Docker volume haqame deebifachuu nan danda'aa (Apple Silicon / . Intel) ykn Windows (WSL2)?

Eeyyee, yoo battalumatti Docker Desktop keessaa baate kanaaf maashiniin dhugaa hojjechuu dhaaba `fstrim` diskiin dhugaa (virtual disk) irratti. macOS irratti, Docker jildii Liinux hunda keessaa kuufata `-/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw`; Windows WSL2 irratti, keessaa `%LocalAppData%\Docker\wsl\disk\docker_data.vhdx`. Sana koppii godhaa `.raw` ykn `.vhdx` faayilii battalumatti gara SSD alaatti galchi, dubbisa qofaaf Liinux keessatti maxxansi (fayyadamaa `losetup -Pr` sababni isaas `.raw` ykn `qemu-nbd -r` sababni isaas `.vhdx`), fi fiigi `ext4magic` ykn `PhotoRec` faallaa kan dhugaa (virtual) irratti `ext4` keessaa qoqqoodinsa.

Maal yoo ani Kubernetes StatefulSet waliin haqe kubectl delete statefulset postgres? Sun PVC koos haqee?

Lakki. Akka durtii Kubernetes keessatti (yoo ta'e malee `persistentVolumeClaimRetentionPolicy.whenDeleted: Delete` ifatti Kubernetes 1.27+ irratti qindaa'e, hojjechaa jira `kubectl delete statefulset` too'ataa StatefulSet fi Pods isaa haqa, . hunda dhiisee `PersistentVolumeClaims` (`data-postgres-0`, . `data-postgres-1`) fi daataa isaanii bu’uuraa dhibbeentaa 100 hin tuqamne. Salphaatti irra deebi'ii iyyadhu `StatefulSet` YAML maqaa walfakkaatuun mul'ata fi `volumeClaimTemplates`, fi Pods haaraan ofumaan irra deebi'ee kan jirutti ni maxxansa `data-postgres-0` PVCs jedhaman.

Akkamitti faayiloota Docker keessa jiran argachuu danda'a overlay2 galmee yeroo qabduun jalqabuu didu (CrashLoopBackOff / . Exited (1))?

Qabduu kufe hin haqi. Hanga meeshaan dhaabate ammallee keessa jirutti `docker ps -a`, laayibariin barreeffamuu danda'uu fi olka'iinsa sagalee isaa guutummaatti diskiin irratti hin tuqamne. Yookaan faayilii kallattiin qabduu dhaabbataa keessaa fayyadamuun waraabuu dandeessa `docker cp :/var/lib/postgresql/data /root/rescued_data`, ykn keessummeessituu isaa sirrii ta’e barbaadi `overlay2` daandii fiiguudhaan `docker inspect --format '{{.GraphDriver.Data.UpperDir}}'` fi galmee sana kallattiin akka `root`.

Yoo namni tokko Kubernetes tokko haqee hoo Namespace (kubectl delete ns prod) fi PVCn hundi qaban reclaimPolicy: Delete AWS EBS moo GCP irratti?

Yoo konkolaachisaan CSI duumessaa (`ebs.csi.aws.com` ykn `pd.csi.storage.gke.io`) duraan raawwatameera `DeleteVolume` sababni isaas `reclaimPolicy` ture `Delete`, hatattamaan toora nageenyaa sadarkaa duumessaa sadii sakatta'i: (1) **AWS Recycle Bin for EBS Volumes** konsoolii AWS EC2 keessatti sakatta'i (yoo seera tursiisaa herrega/tag irratti socho'aa ture, jildii EBS haqame Recycle Bin keessa taa'ee cuqaasuu 1 keessatti deebi'uu danda'a); (2) **AWS Backup / DLM / GCP Snapshot Schedules** suuraa jildii ofumaan hojjetame isa dhiyoo ta'eef sakatta'i; fi (3) kuusdeetaan kee WAL/binlogs (`WAL-G`, . `pgBackRest`, . `Litestream`) gara baaldi S3/GCS tti.


Qajeelfamoota walqabatan


Maddootaa fi qajeelfama ofiisaa

  • Kubernetes Dokumantarii Ofiisaa (kubernetes.io / Cloud Native Computing Foundation): Wanta Kuusaa Eegumsa Fayyadama Keessatti (kubernetes.io/pvc-protection Xumuraa), Jildii Itti Fufiinsa Qabu Deebifachuu (Retain vs. Delete), fi Hojiirra Oolchuu etcd Kilaastaroota Kubernetes (etcdctl snapshot restore).
  • Docker Inc. (docs.docker.com): Docker keessatti Deetaa Bulchuu: Volumes, Bind Mounts, . overlay2 Arkiteekcharii Konkolaachisaa Kuusaa, fi Wabii Crune.
  • Dhaabbata Keernii Liinux (kernel.org): Kan... /proc Sirna Faayilii (procfs Ibsituu Faayilii Bani Deebisuu karaa /proc/<pid>/fd/) fi Ext4 Joornaalii Ispeesifikeeshinii.
  • ext4magic Dokumantarii Pirojektii (ext4magic.sourceforge.net): Forensic Inode fi Joornaalii Dabarsa Deebisuu Sirna Faayilii Ext3/Ext4 irratti.
  • Inistiitiyuutii Istaandardii fi Teeknooloojii Biyyaalessaa (NIST) (Ameerikaa): Maxxansa Addaa 800-190: Qajeelfama Nageenya Qabduu Appilikeeshinii & Taatee Deebisuu.