Skip to content

Docker o Kubernetes Produksyon Kadamo nga Ginpara: Pagluwas . docker system prune --volumes, overlay2 Mga inodes, ngan . etcd Mga kuhato

An mga numero han emerhensya magkaiba-iba ha tagsa nga nasud .. Ini nga pakli nagamit han 911, an numero para han Estados Unidos ngan Canada. Damu nga iba nga nasud an nagamit hin 112, 999, o iba nga numero. Bilnga an numero para ha iyo nasud ..

Pagdalagan . docker compose down -v, docker system prune -a --volumes, docker volume rm, o . kubectl delete pvc sa sayop nga terminal nga tab sa produksyon mao ang usa sa mga malaksi nga pamaagi sa pagpanas sa buhi nga PostgreSQL, MySQL, MariaDB, Redis, MongoDB, o SQLite nga kadamo sa database. Diri sugad han mga litrato han dampog nga virtual nga makina nga nabalhin ngadto hin 7-ka-adlaw nga basurahan, an lokal nga drayber han kadamo han Docker (/var/lib/docker/volumes/<name>/_data) ngan Kubernetes . local-path / hostPath mga tagahatag dayon nga nagpagawas han sumbanan nga POSIX . unlink() ngan . rmdir() mga tawag nga direkta kontra sa ilarum nga sistema sa file sa tagbalay sa Linux (ext4, XFS, o . Btrfs). An kada pagsurat nga nahitatabo dida hito nga Linux nga host katapos matapos an sugo mahimo magsurat han mga gintalwas nga mga bloke han database ha disk. Kon an imo disk han serbidor napuno hin 100 porsyento (0 bytes free) antes may dumalagan . docker system prune --volumes ha kalisang, konsulta . 100% nga puno nga disk sa server, bloat nga WAL nga log sa datos, ug pagbawi sa zero-espasyo; para han mga waray sulod nga metal nga Linux nga mga file ha gawas han mga surudlan, kitaa . aksidente nga rm -rf o Shift-Delete sa ext4, XFS, APFS, ug NTFS: pagbasa-la sa pagbutang utro ug pag-ukit sa inode ngan . virtual nga makina VMDK, VHDX, ug qcow2 snapshot chain korapsyon ug hypervisor rescue. Kon ini nga pag-undang han produksyon makakaapekto ha pag-ataman han pasyente ha ospital, pagpadara hin emerhensya, o mga sistema han katalwasan han pampubliko nga mga kagamitan, tawag ha iyo lokal nga numero han emerhensya (911 ha Estados Unidos ngan Canada, . 112 ha bug-os nga Unyon han Europa, . 999 ha Reino Unido) o kitaa an amon direktoryo han . mga numero han emerhensya.

Buhata ini yana .

  1. AYAW pagdalagan docker compose up -d, systemctl restart docker, o ibalik an pod han Kubernetes: An paghimo utro han surudlan o pagtikang utro han Docker nga daemon nagsusurat hin mga megabyte hin bag-o nga . overlay2 metadatos, mga talaan han JSON nga surudlan, ngan bag-o nga gintikangan nga waray sulod nga mga file han database (initdb) direkta ha igbaw han eksakto nga . ext4 o . XFS mga bloke diin an imo ginpara nga kadamu nalingkod mga segundo na an naglabay.
  2. Susiha ha sulod hin 5 ka segundo kon an proseso han surudlan (postgres, mysqld, redis-server, node, python) nagdadalagan pa ha panumduman ( ).ps aux ngan . sudo lsof +L1): Kun may usa nga tawo nga nagpara hin mga file ha sulod hin naka-mount nga kadamo o nag-unlink hin diri kilala nga kadamo samtang an surudlan nagdadalagan pa, an kernel han Linux nagtitipig hin 100 porsyento han waray sumpay nga mga file han database nga buhi ha disk basta an host Process ID han surudlan (PID) nagkakapot hin bukas nga file nga naghuhulagway ( ).FD). Mahimo mo kopyahon ito nga mga file hin direkta tikang ha . /proc/<PID>/fd/ o . /proc/<PID>/root/ nga may zero nga pagkawara han datos antis umundang an surudlan.
  3. **Kun an surudlan in gin-undang na ngan ginpara an kadamo (docker compose down -v o . docker system prune --volumes), pagyelo sa tagbalay nga disk nagsusurat dayon **: Pag-undang sa demonyo sa Docker (sudo systemctl stop docker.socket docker.service containerd) salit an mga surudlan ha luyo ngan mga pag-usisa ha kahimsog naundang ha pagsurat hin mga log ngadto ha . /var/lib/docker, katapos bisan o ibutang utro . /var/lib/docker (o an gamot . / partisyon) basaha-la (sudo mount -o remount,ro /) o pagkuha hin kadagmitan nga bloke-lebel han kadamo han dampog nga kuha (AWS EBS Snapshot, GCP Persistent Disk Snapshot, DigitalOcean Volume Snapshot) antes kumapot hin bisan ano.
  4. Kun aada ka ha Kubernetes (kubectl delete pvc o . kubectl delete namespace), kitaa an Nagpadayon nga Kadamo ( ).PV) ReclaimPolicy (kubectl get pv) dayon:
  5. Kun an . PV mayda persistentVolumeReclaimPolicy: Retain, an imo datos waray ginpapara: an . PV ginbalhin la ha . Released kahimtang ngan an imo disk nga dampog (EBS, Azure Disk, Ceph RBD, NFS) 100 porsyento nga waray maruba.
  6. Bisan kun . kubectl delete pvc nadukot ha ** .Terminating, mga Kubernetes ** Mga Tapuson (kubernetes.io/pvc-protection) pugngi an drayber han CSI tikang ha pagpara han ilarom nga pagtipig basta an bisan ano nga Pod nagtutudlok pa hito nga PVC. Ayaw pag-delete han Pod tubtob nga diri mo pa ginkopya an datos tikang han nagdadalagan nga Pod.
  7. Imahinay an ilarom nga bloke nga partisyon (dd / ddrescue ha SSH) ngadto ha gawas nga disk o bulag nga kadamo han dampog antes magdalagan . ext4magic, extundelete, o . PhotoRec: Ayaw gud pagdalagan hin mga parag-ukit hin file nga nagsusurat hin mga file hin paggawas ngadto ha pareho nga partisyon han disk nga tikang hito imo ginbabawi . /var/lib/docker/volumes.
  8. Alang sa nadaot o aksidente nga napara nga estado han kumpol han Kubernetes (kubectl delete crd / namespace), paghunong . kube-apiserver ngan ibalik an imo pinakabag-o . etcd kuha (etcdctl snapshot restore: Kun an estado han kumpol ha . etcd ginpahid samtang an nagpapailarom nga mga tomo han pagtipig ha dampog naeksister pa, nga nagpapahiuli . etcd nabawi an ngatanan . PV, PVC, Secret, ngan . ConfigMap mga butang nga dungan.

Danger

Ayaw gud pagkuhaa an . kubernetes.io/pvc-protection o . kubernetes.io/pv-protection paratapos nga may . kubectl patch ... -p '{"metadata":{"finalizers":null}}' kon an usa nga PVC nadukot ha . Terminating: Iton nga nagtatapos amo la an butang nga nagtitipig han imo drayber han CSI han dampog (aws-ebs-csi-driver, pd.csi.storage.gke.io, Longhorn, Rook-Ceph) tikang ha pagpagawas hin usa nga himan . DeleteVolume Tawag han API ha pagbungkag han imo disk han produksyon. Samtang an PVC in nakadukot ha 2019. Terminating, an Pod in nagdadalagan pa ngan an kadamo in naka-mount pa: dalagan . kubectl exec o . kubectl cp (o pg_dump / mysqldump) dayon para masalbar an 100 porsyento han imo database antes matapos an Pod.


Puno hin desisyon: ginpara nga Docker nga kadamo, . overlay2 layer, o Kubernetes PVC triage .

Gamita ini nga flowchart ha pagpili han pinakamalaksi nga dalan han pagbawi nga waray pagkawara nga nakabase ha kon buhi pa an proseso han surudlan, kon an kadamu ginsuportahan han lokal nga disk o pagtipig han CSI ha dampog, ngan kon ano nga filesystem an nag-host . /var/lib/docker:

flowchart TD
    Start["Nawawara nga Datos han Produksyon Katapos han Docker o Kubernetes Pagpara han Sugo ."] --> WhichEnv{"Hain nga Plataporma & Sugo an Nag-aghat han Pagkawara?"}

    WhichEnv -->|"Docker: Sudlanan nga Nagdadalagan Pa (Mga File nga Waray Sumpay ha Sulod han Tomo / Sudlanan)"| ProcRescue["Pagluwas Abrihi nga Waray Sumpay nga Pail nga mga Deskriptor pinaagi han sudo lsof +L1 ngan /proc/PID/fd/N o /proc/PID/gamot/"]

    WhichEnv -->|"Docker: Sudlanan nga Gin-undang & Kadamo nga Ginpara (maghimo -v / pagputol --mga kadamo)"| StopDocker["Dayon Dalagan: sudo systemctl paghunong docker."]

    WhichEnv -->|"Kubernetes: kubectl pagtangtang pvc / pv / statefulset / namespace"| K8sCheck{"Nagdadalagan Pa ba an Pod O Nadukot an PVC ha Pagtapos?"}

    K8sCheck -->|"Oo: Pod Nagdadalagan Pa (Pagtapos nga Pagpugong CSI Pagpara)"| K8sExec["AYAW pag-para hin Pod -> Pagdalagan kubectl exec / pg_dump / tar ha stdout ngadto ha Lokal nga Disk Dayon"]
    K8sCheck -->|"Waray: Pod Nawara -> Susiha kubectl makakuha hin pv"| ReclaimCheck{"Ano an Patakaran han Pag-angkon han PV?"}

    ReclaimCheck -->|"Pagtipig (PV Kahimtang = Ginpagawas)"| ClearClaimRef["100% nga Datos nga waray maruba -> I-edit an PV ha pagkuha han spec."]
    ReclaimCheck -->|"Pagtangtang (Dampog EBS / PD / Longhorn / Lokal-Dalan)"| CloudOrLocal{"Dampog CSI Kadamo o Lokal nga Tagbalay Disk?"}

    CloudOrLocal -->|"Dampog nga CSI (AWS EBS / GCP / Azure / Ceph)"| CloudSnap["Susiha an Dampog nga Konsola Recycle Bin / Awtomatiko nga EBS Snapshots / Ceph RBD Basura (rbd basura ls)"]
    CloudOrLocal -->|"Lokal nga Node Disk (lokal nga dalan / hostPath)"| StopDocker

    StopDocker --> RemountRO["Pagbutang utro han Host nga Partisyon Basaha-La (pagbutang -o pagbutang utro, ro) O Sulog han Blok nga Imahe ha SSH"]
    RemountRO --> HostFS{"Ano nga mga Filesystem nga mga Host / var / lib / docker?"}
    HostFS -->|"ext4."| Ext4Rec["Gamita an mga debugfs / ext4magic Journal Inode Transaction Rollback (-usa ka timestamp)"]
    HostFS -->|"XFS / Btrfs"| CarveRec["Gamita an mga ugat han Btrfs / xfs_irecover / Pasadya nga pag-ukit hin pirma para han SQLite, Postgres Heap, o InnoDB .ibd"]

Hugna 1: Kon paonan-o an Docker ngan Kubernetes aktwal nga nagpapara han mga tomo ha disk .

Antes magdalagan hin bisan ano nga sugo ha pagbawi, sabta kon diin an imo datos pisikal nga naukoy ha Linux nga host ngan kon ano an aktuwal nga ginkaptan han sugo ha pagpara:

Klase han Pagtipig & Pagpara han Sugo Dalan han Sistema han Salin han Tagbalay ha Node han Linux Ano gud an Ginbuhat han Sugo nga Paraon . Paagi han Dayon nga Pagbawi .
** Ginngaranan nga Docker nga Tomo (docker volume rm o . docker compose down -v)** /var/lib/docker/volumes/<vol_name>/_data Gin-unlek an mga file ha sulod . _data/ ngan ginkuha an pagsulod han direktoryo tikang ha . /var/lib/docker/volumes/metadata.db (boltdb). Hunong dayon an Docker, ibutang utro . /var/lib/docker basahon la, ngan mabawi an waray sumpay nga mga inode pinaagi han . ext4magic / debugfs o pirma nga pag-ukit.
** Waray kilala nga Docker nga Kadamo (docker run -v /var/lib/mysql + . docker rm -v o . docker system prune --volumes)** /var/lib/docker/volumes/<64-char-hex-id>/_data docker system prune --volumes nagpapara han kada diri nagpapakilala ngan ginngaranan nga tomo nga diri yana gintutudlok hin diri maminos usa nga naeksister nga surudlan. Hunong dayon an Docker; kun mayda ka iba nga mga gin-undang nga mga surudlan nga an mga kadamo waray pag-utod, kitaa an nahibilin . /var/lib/docker/volumes/*/_data mga folder anay antes mag-ukit hin waray ig-alutaga nga mga bloke.
Sudlan nga Masurat nga Layer (docker rm <container> han an datos iginsurat ha gawas han usa nga tomo) /var/lib/docker/overlay2/<layer-id>/diff/ Ginhukas an igbaw han surudlan . diff/ direktoryo ha sulod han . overlay2 drayber han pagtipig. Hunong dayon an Docker ngan kuhaa an waray sumpay nga puno han direktoryo tikang ha . ext4 journal o XFS mga bloke.
** Docker Desktop sa macOS o Bintana (docker system prune --volumes)** Ha sulod hin usa nga virtual nga makina nga disk nga ladawan: -/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw (macOS) o . %LocalAppData%\Docker\wsl\disk\docker_data.vhdx (Mga bintana WSL2). Ginpadara unlink() ha sulod han Linux VM, ngan kon . discard/TRIM aktibo ha . Docker.raw / docker_data.vhdx, ginsuntok nga talagsahon nga mga buho ha file han tagbalay. Pag-undang ha Docker Desktop ha sulod hin 5 ka segundo, kopyaha Docker.raw o . docker_data.vhdx ngadto ha gawas nga pagmaneho, ngan dumalagan . ext4magic / PhotoRec kontra han virtual nga imahe han disk.
** Kubernetes nga PVC nga may Delete Pagbawi han Patakaran ha Ceph RBD (Rook-Ceph) o Halaba nga Sungay** Ceph OSD nga linaw (rbd) o /var/lib/longhorn/replicas/. Kon csi-rbdplugin mayda trash gin-aktibo (rbd trash), an imahe han RBD iginbalhin ngadto ha basurahan han Ceph; kun diri an mga bloke waray mapa. Dalagan . rbd trash ls --pool <pool> ha sulod han . rook-ceph-tools pod ngan ibalik nga may . rbd trash restore.

Hugna 2: Pagluwas han mga abrido nga mga file han datos tikang ha usa nga surudlan nga nagdadalagan pa (/proc/<pid>/fd/)

Hulat: nadalagan pa ba yana an surudlan? Agsob, an usa nga inhinyero nagpapadalagan hin iskrip han pagbalhin han aplikasyon, usa nga trabaho ha paglimpyo han cron, o usa nga manwal . rm -rf /var/lib/postgresql/data/* o . rm /app/data/production.sqlite3 ha sulod hin usa nga nagdadalagan nga surudlan, o ginpapara an ilarom nga folder han tagbalay nga paghigot . /opt/app/data samtang an surudlan mismo (postgres, mysqld, mariadbd, redis-server, mongod, gunicorn, node) in nagdadalagan pa.

Ha Linux, an usa nga file diri ginpapara tikang ha disk kun . rm o . unlink() gintatawag. An mga bloke han disk ngan inode hini nagpapabilin 100 porsyento nga gin-alutaga ngan mababasa tubtob han katapusan nga proseso nga nagkakapot hin bukas nga paghulagway han salin (FD) ngadto hito nga inode nagsasara hito o nagawas.

Lakang 1: Bilnga an ID han Proseso han tagbalay (PID) han proseso han surudlan .

Ha node han tagbalay han Linux (diri ha sulod han surudlan), bilnga an tagbalay . PID han imo database o proseso han aplikasyon:

sudo lsof +L1 | grep -E "postgres|mysqld|mariadbd|sqlite|redis|mongo|node|python|java"
Kitaa an resulta:
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)
Kitaa an kolum . NLINK: nasiring ito 0, ngan an ngaran han salin natapos ha ** .(deleted). An file bug-os nga nawara tikang ha . ls /var/lib/docker/volumes/..., bisan pa ** kada usa nga byte ( ).482 MB ha users.ibd, 89 MB ha production.sqlite3) buhi pa ha sulod . /proc/<PID>/fd/<FD>.

Lakang 2: Kopyaha an mga file han database nga waray sumpay nga diretso tikang ha . /proc/<PID>/fd/

Ayaw **pag-undang o pag-utro han surudlan. Samtang an proseso in nagdadalagan pa, kopyaha an mga hilaw nga mga paghulagway han file direkta ngadto hin talwas nga folder ha imo host:

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

Lakang 3: Mas maupay pa: Pagdalagan hin buhi nga lohikal nga basurahan (pg_dump / mysqldump / .backup) antes sarahan han surudlan an mga FD .

Kon postgres o . mysqld nagdadalagan pa nga an mga file han datos hito abrido ha memorya ngan . /proc/<PID>/fd/, sarihi an pagpadalagan hin buhi nga lohikal nga paglabog ha naeksister nga soket han unix o koneksyon han TCP anay:

# 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
* (Tigamni: Nag-abri ngan nagsara an PostgreSQL .1, .2 mga file nga bahin ha bug-os nga mga proseso han trabahador hin dinamiko, salit . pg_dump mahimo mapakyas ha mga lamesa nga waray ig-cache; pag-usa hin buhi nga SQL nga pakiana upod an pagkopya han kada abrido . /proc/<pid>/fd/* ha tabok tanan postgres an mga PID han bata nga likod nagtitipig han pinakadako nga posible nga datos han tambak han lamesa.) *


Hugna 3: Pagbawi hin ginpara nga Docker nga kadamo ha . ext4 o . XFS katapos umundang an surudlan .

Ano man kon dumalagan ka . docker compose down -v o . docker system prune --volumes, salit an surudlan naundang na ngan an ngatanan . /proc/<pid>/fd/ sarado an mga deskriptor? Yana aada ka ha usa nga lumba kontra han luyo nga disk nga nagsusurat ha Linux nga host.

Lakang 1: Pagyelo sa sistema sa file sa tagbalay sa Linux sa sulod sa 10 ka segundo .

  1. ** Ihunong dayon an Docker, containerd, kubelet, ngan cron ** salit waray surudlan, healthcheck, o log rotator nga nagsusurat hin lain nga byte ngadto ha /var/lib/docker:
    sudo systemctl stop docker.socket docker.service containerd.service cron.service
    
  2. Suhaha kon ano nga bloke nga aparato ngan sistema han salin an ginkakaptan /var/lib/docker:
    df -Th /var/lib/docker
    
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/nvme0n1p1 ext4  100G   42G   58G  42% /
    
  3. **Ibutang utro an partisyon nga Basahon-La (o pag-awas hin hilaw nga imahe han partisyon ha SSH ngadto hin iba nga makina) **:
  4. Kon /var/lib/docker aada ha iya kalugaringon nga dedikado nga partisyon o LVM nga kadamo (pananglitan /dev/nvme0n1p2 o . /dev/mapper/vg0-docker), ibutang utro ini nga basahon la dayon:
    sudo mount -o remount,ro /var/lib/docker
    
  5. Kon /var/lib/docker aada ha gamot . / partisyon (/), sarihi nga ipirit ang ugat nga partisyon basaha-la gamit ang kernel Mahika SysRq nga gatilyo ( ).echo u | sudo tee /proc/sysrq-trigger) o sudo mount -o remount,ro /.
  6. ** Kon ikaw sa usa ka dampog nga VPS (AWS EC2, GCP, DigitalOcean, Hetzner, Linode) **: Dayon nga kadto sa imong dampog nga web console ug i-klik ** Paghimo Snapshot ** sa kadamo sa bloke sa server (o i-stream ang hilaw nga bloke nga aparato pinaagi sa SSH ngadto sa ikaduha nga server: sudo dd if=/dev/nvme0n1p1 bs=4M status=progress | gzip -1 | ssh user@backup-server "cat > /mnt/storage/docker_host_raw.img.gz").

Lakang 2: Susiha kon an imo datos nalingkod pa ha LAIN nga waray pag-prun nga tomo o . overlay2 sapaw

Antes mag-ukit hin mga waray ig-alutaga nga mga bloke han disk, pag-usisa nga an imo datos nga datos waray gud igtipig ha usa nga paghigot o usa nga iba an ngaran nga tomo nga nakatalwas:

# 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
Kada semana, nalilisang an mga administrador katapos magdalagan . docker volume rm app_db_data, nga nadiskobre la nga may . find /var/lib/docker nga docker-compose.yml aktuwal nga naghimo . projectname_app_db_data (nga 100 porsyento pa gihapon nga waray maruba ha disk) samtang . app_db_data amo an daan nga waray pa magamit nga tomo tikang unom ka bulan na an naglabay.

Lakang 3: Pagbawi han mga direktoryo han kadamo han Docker nga waray sumpay ha . ext4 gamit an . ext4 Masanay (ext4magic ngan . debugfs)

San-o . docker volume rm nagpapara /var/lib/docker/volumes/<vol_name>/_data ha usa nga ext4 sistema sa file, ext4 zero out sa mga direkta nga bloke nga mga tudlo (i_block / sukol nga puno nga gamot) sa buhi nga inode nga lamesa. Pero, an ** .ext4 journal (node <8>, kasagaran 128 MB ngadto ha 1024 MB lingin nga singsing nga buffer) ** nagkakapot pa gihapon hin makasaysayan nga mga kopya han eksakto nga mga lamesa han inode ngan mga bloke han direktoryo tikang ha tuo nga antes . docker compose down -v ginpatay.

+-------------------------------------------------------------------------+
| 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.        |
+-------------------------------------------------------------------------+

Dalagan . ext4magic kontra han imo basahon la nga partisyon (o an .img kopya han snapshot ha ikaduha nga server), nga nagtutudlok hin selyo han oras (-a) tikang ha 5 ka minutos antes dumalagan ka . docker compose down -v o . docker system prune --volumes:

# 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: Nagbabasa han litrato han journal nga imo gintipigan ha RAM katapos dayon han pag-undang han Docker. - -f var/lib/docker/volumes: Ginpupuntirya an eksakto nga puno han direktoryo han mga tomo han Docker (tigamni: bayaan an nangunguna / ha ext4magic paryente nga mga dalan). - -a $(date -d "-15 minutes" +%s): Nagsusumat . ext4magic ha paghimo utro han puno han direktoryo gamit an mga kopya han inode nga balido 15 ka minutos an nakalabay (antes gud han aksidente nga pagpara). - -r: Nakabawi hin mga kumpleto nga mga direktoryo kun diin waray mga bloke nga ginsurat; kon -r nawara an mga file nga bahin nga ginsurat, padalagan an ikaduha nga pag-agi nga nagsasaliwan . -r nga may -m (mahika nga pag-ukit + journal nga hybrid nga paagi).

Lakang 4: Pag-ukit nga hilaw nga SQLite, PostgreSQL, o MySQL InnoDB nga mga file kon ang journal nagputos na (XFS o . ext4)

Warning

Kay ano XFS diri nasuporta . ext4magic ngan nagkikinahanglan hin kadagmitan nga pagbasa-la nga pag-unmount: Diri sugad han . ext4, nga nagsusurat hin bug-os nga 256-byte nga mga kopya han inode ngadto han iya journal, . XFS mga troso nga metadatos nga panuyo delta ug agresibo nga nagamit utro nga libre inode B-mga puno (agi). Kun . /var/lib/docker nalingkod ha usa nga . XFS partisyon (default sa RHEL, Rocky Linux, AlmaLinux, ug Amazon Linux), unmounting . /var/lib/docker o pagbutang utro . / an pagbasa la ha sulod hin mga segundo amo an usa la nga pinakaimportante nga pitad antes mag-ukit.

Kun an tagbalay nagamit hin ** .XFS** o kun an . ext4 journal nga naputos na sa bawbaw sa mga tudlo sa inode, gamiton an pirma ug pag-ukit sa istraktura kontra sa hilaw nga imahe sa disk (docker_host_raw.img):

  1. ** Para han mga Base nga Datos han SQLite3 (.sqlite, .db - pananglitan, Vaultder, Sunod nga dampog, Kabulig ha Panimalay, Gitea, Grafana) **: Tag SQLite3 nga database nagtitikang hin diri masayop nga 16-byte nga ASCII nga ulohan ha byte 0 han iya syahan nga 4-kilobyte nga pakli: 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 ("SQLite format 3\0"), ngan nagtitipig han eksakto nga kadako han pahina han database ( ).Bytes 16..17, kasagaran 4096) ngan kabug-usan nga kadako han datos ha mga pahina ( ).Bytes 28..31, dako nga 32-ka-bit nga bug-os nga ihap) ha sulod mismo hito nga pareho nga ulohan.
  2. Dalagan . PhotoRec nga may [File Opt] -> [x] sqlite gin-aktibo, o i-scan an partisyon hin direkta gamit an . grep -ab "SQLite format 3" para mabilngan an eksakto nga byte han imo ginpara nga SQLite nga file ngan kuhaon ini gamit an . dd:
    # Find the exact byte offsets of every "SQLite format 3" header on the partition:
    sudo grep -ab "SQLite format 3" /dev/nvme0n1p1
    
    Kon makuha na, dalagan . sqlite3 carved.db ".recover" | sqlite3 repaired.db ha paghimo utro han kada waray maruba nga pahina han dahon han B-tree.

Tip

**Paonan-o kukuwentahon an eksakto nga . dd byte nga kadako han waray sumpay nga SQLite3 nga salin tikang han iya ulohan **: Makausa . grep -ab "SQLite format 3" naghahatag ha imo han pagtikang han byte nga pagbalhin . OFFSET han imo ginpara nga SQLite nga datos, basaha an mga byte . 16..17 (uint16 dako nga katapusan nga Sukol han Pakli, pananglitan, 0x1000 = 4096 mga byte) ug mga byte . 28..31 (uint32 dako nga katapusan nga Pag-ihap han Pakli, pananglitan, 25000 mga pahina) gamit an . hexdump -C -s OFFSET -n 32. Pagpadamu Page Size x Page Count naghahatag ha imo han eksakto nga kahilaba han byte nga igpapasa ha . dd (iflag=skip_bytes,count_bytes) kun an file magkasumpay ha disk.

  1. ** Para sa MySQL / MariaDB InnoDB (.ibd mga file sa lamesa) **: Kada InnoDB . .ibd lamesa naglangkob sa sunod-sunod . 16 KB (16,384 byte) mga pakli nga nagsusulod sa . FIL_PAGE_INDEX (0x45BF) ulohan ngan talagsaon han lamesa . space_id. Gamita an Percona / TwinDB undrop-for-innodb (stream_parser + . c_parser) gamit ha pag-scan . /dev/nvme0n1p1 para han ngatanan . 16 KB InnoDB index pakli ug ilabog ang matag laray direkta ngadto sa mga file sa TSV / SQL alang sa utro nga pag-import.
  2. ** Para han mga Pail han Tambak han PostgreSQL ($PGDATA/base/<db_oid>/<relfilenode>)**: An PostgreSQL nagtitipig han tagsa nga lamesa nga magkasumpay . 8 KB (8,192 byte) tambak nga mga pakli nga nagsusulod PageHeaderData (pd_lower, pd_upper, pd_special). Gamita pg_filedump o pglazarus / pdu ha pag-scan han waray ig-alotaga nga mga rehiyon han disk para han . 8 KB mga pakli nga katugbang han pagkahan-ay han tuple han kolum han imo lamesa (HeapTupleHeaderData) ngan paghimo utro han mga laray.

Hugna 4: Kubernetes PVC, PV, ug etcd Pagbawi hin Emerhensya

Ha Kubernetes (EKS, GKE, AKS, k3s, RKE2, kubeadm, OpenShift), aksidente nga pagpara hin usa nga Nagpadayon nga Pag-angkon han Kadam-an (kubectl delete pvc), usa ka Estado ngaSet, o usa ka bug-os nga Lugar han Ngaran (kubectl delete ns prod) nasunod hin naiiba gud nga arkitektura kaysa han nag-uusahan nga Docker.

Senaryo A: An PVC nagpapakita . Terminating (An Paratalwas hin Kinabuhi nga Paragtapos)

Pagdalagan:

kubectl get pvc -n <namespace>
Kun an . STATUS kolum nasiring Terminating, pagginhawa hin maupay: WARAY pa mapapara an imo datos. - Kay ano? Tag Kubernetes PVC nga gihimo Sugod ang Kubernetes 1.9 awtomatiko nga naglakip . finalizers: [kubernetes.io/pvc-protection]. - Samtang usa nga Pod an nag-mount pa hiton nga PVC, an tagdumara han Kubernetes nagdudumiri pagtapos han pagpara han PVC ngan diri gud natawag han drayber han CSI . DeleteVolume RPC. - Dagmit nga Aksyon: AYAW **Para o pag-utro han Pod, ngan AYAW pag-patch han nagtatapos. Kopyaha dayon an ngatanan nga datos tikang ha nagdadalagan nga Pod ngadto ha imo lokal nga makina o ha usa nga S3 nga balde:
# 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

Senaryo B: Ginpara an PVC, ngan . kubectl get pv nagpapakita han Nagpadayon ngaKadamo ha . Released estado (ReclaimPolicy: Retain)

Pagdalagan:

kubectl get pv
Kon an imo Nagpadayon ngaKadamu (pv-prod-postgres) nakalista pa gihapon ha . STATUS: Released (kay an iya Klase han Pagtipig gingamit reclaimPolicy: Retain), 100 porsyento han imo datos in nalingkod pa nga waray kapti ha ilarom nga disk. Bisan pa, nagdudumiri an Kubernetes nga tugotan an bag-o nga PVC nga magbugkos ha usa nga . Released PV kay an PV mayda pa . spec.claimRef pagtudlok han mga daan nga ginpara nga PVC's . UID.

Paano maghimo hin . Released PV Available utro ha 10 ka segundo nga waray pagkawara han datos: 1. I-edit an butang nga Nagpapadayon nga Kadamo ngan buraa an . spec.claimRef bloke:

kubectl patch pv <your-pv-name> --type json -p '[{"op": "remove", "path": "/spec/claimRef"}]'
2. Dalagan . kubectl get pv utro: an kahimtang dayon nga nagbabag-o tikang ha ** .Released** ngadto ha Available. 3. Paghimo utro han imo . PersistentVolumeClaim (pagtudlok volumeName: <your-pv-name> ngan katugbang nga kapasidad / pagtipigKlaseNgalan). Maghihigot ini dayon ha naeksister nga PV nga waray maruba an ngatanan nga mga file.

Senaryo C: Pagpahiuli hin ginpara nga estado han kumpol han Kubernetes tikang ha usa nga . etcd kuha (etcdctl snapshot restore)

Ano man kon may dumalagan . kubectl delete namespace prod o . helm uninstall ug gipara ang 200 nga mga manifesto sa Kubernetes, Mga tinago, ConfigMaps, ug mga kahulogan sa PV sa usa ka self-managed . kubeadm, k3s, o . RKE2 pagkontrol nga eroplano?

  1. **Bilnga an imo pinakabag-o nga etcd kuha ** (pinaagi han kasagaran nga /var/lib/rancher/k3s/server/db/snapshots/, /var/lib/rancher/rke2/server/db/snapshots/, o an imo nakaeskedyol . /var/backups/etcd/snapshot.db).
  2. Supahiha an integridad han snapshot antes kaptan an buhi nga kumpol:
    ETCDCTL_API=3 etcdctl snapshot status /path/to/snapshot.db --write-out=table
    
  3. **Undang kube-apiserver ngan . etcd ha pagdumara nga eroplano nga node (mga) **:
  4. Ha kubeadm (mga diri-nabag-o nga pod): Pagbalhin . /etc/kubernetes/manifests/kube-apiserver.yaml ngan . /etc/kubernetes/manifests/etcd.yaml temporaryo nga ngadto ha . /root/manifests_hold/ sanglit kubelet gin-uundang hin limpyo an duha nga surudlan, katapos gin-abalik . /var/lib/etcd ngadto ha /var/lib/etcd.bak.
  5. Ha k3s: Pagdalagan sudo systemctl stop k3s ngan . sudo k3s server --cluster-reset --cluster-reset-restore-path=/path/to/snapshot.
  6. Ibalik an etcd Direktoryo han datos ha 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. Pagbalhin etcd.yaml ngan . kube-apiserver.yaml balik ngadto ha /etc/kubernetes/manifests/. Ha sulod hin 30 ka segundo, . kube-apiserver nagdudugtong utro ha iginpahiuli . etcd tindahan ngan an kada ginpara nga Espasyo han Ngaran, Sekreto, ConfigMap, ngan Nagpadayon nga Kadam-an nga butang in makita utro.

Hugna 5: Pagpatig-a sa Docker ug Kubernetes nga mga tomo batok sa aksidente nga pagpara

Kon an imo datos han produksyon mahibalik, ipatuman ini nga upat nga arkitektural nga mga bantay basi an usa nga sayop han CLI diri na gud makakapara hin buhi nga kadamu:

  • Bag-oha an kada produksyon Kubernetes StorageClass tikang reclaimPolicy: Delete ngadto ha reclaimPolicy: Retain: Ha kasagaran, nakasulod nga dampog Mga Klase han Pagtipig (gp2, gp3, standard-rwo) kasagaran ngadto ha . reclaimPolicy: Delete, kahulogan nga an pagpara hin PVC nakakabungkag han disk han dampog. Paghimo hin . StorageClass nga may reclaimPolicy: Retain (o pagtapik han mga naeksister nga PV nga may kubectl patch pv <pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}') salit an pagpara hin PVC o Espasyo han Ngaran diri gud nagpapara han nakatago nga kadamo han bloke.
  • ** Pag-aktibo sa AWS EBS Recycle Bin / Mga Iskedyul sa GCP / Velero nga may mga Snapshot sa CSI **: An pagpaandar sa AWS EBS Recycle Bin nagtitipig sa bisan ano nga ginpara nga EBS nga kadamo sa sulod sa 7 ngadto sa 30 ka adlaw bisan kon ang drayber sa CSI magtawag DeleteVolume.
  • Ayaw gud gamita docker system prune --volumes ha awtomatiko nga mga iskrip han paglimpyo o mga paradalagan han CI / CD: Kon an usa nga surudlan han datos han produksyon nabunggo hin madaliay (Exited (1)) ha eksakto nga takna nga usa nga cron nga trabaho an nadalagan . docker system prune -a --volumes -f, Ginhuhunahuna han Docker an iya diri nagpapakilala nga mga tomo nga "waray gamita" ngan ginpapara ini hin permanente. Hubo --volumes tikang ha ngatanan nga mga iskrip han paglimpyo.
  • **Gamita an klaro nga mga paghigot han tagbalay (/srv/prod_data/postgres:/var/lib/postgresql/data) o mga gawas nga gindudumara nga mga datos para han mga karga han trabaho han produksyon nga may estado **: Diri sugad han . /var/lib/docker/volumes/, tagbalay nga mga direktoryo han paghigot ha gawas . /var/lib/docker/ mga diri gud ginkakaptan han . docker compose down -v, docker volume rm, o . docker system prune --volumes.

Mga numero han emerhensya ha rehiyon ngan mga patakaran han ahensya

Kun ang usa ka surudlan o Kubernetes storage deletion nakakaapekto sa mga klinikal nga operasyon sa ospital, pagpadara sa katalwasan sa publiko, o regulado nga personal nga datos, magdako dayon:

  • Estados Unidos ug Kanada: Pagtawag 911 kun an usa nga kapakyasan han grupo han surudlan in nakakapaluya han pagbantay han pasyente ha klinika, mga sistema han EHR, o pagpadara hin emerhensya. Igreport an malisyoso nga surudlan nga imprastraktura nga panhitabo o mga insidente ha cyber ngadto ha CISA (1-844-Say-CISA / cisa.gov/report) o an Sentro han Kanada para han Seguridad ha Internet (1-833-CYBER-88).
  • Nagkaurosa nga Ginhadian: Pagtawag 999 para han mga hulga ha kinabuhi o kritikal nga imprastraktura han NHS. Ilarum han UK GDPR, an permanente nga pagbungkag o pagkawara han pagkaada hin personal nga datos nga waray mabawi nga backup nagkikinahanglan hin pag-ebalwar hin 72-oras nga pagpahibaro hin paglapas ngadto ha ICO (0303 123 1113).
  • Unyon han Europa: Pagtawag 112 ha bug-os nga ngatanan nga mga estado nga miyembro han EU. An mga entidad ha ilarum han NIS2 Directive in kinahanglan magsumiter hin temprano nga pahimatngon ngadto han ira nasyunal nga CSIRT ha sakob hin 24 ka oras han grabe nga pagparong han serbisyo, ngan an permanente nga pagkawara han personal nga datos in nag-aaghat han GDPR Artikulo 33 nga pagreport ha sakob hin 72 ka oras.
  • Australia ug New Zealand: Dial 000 ha Australia o 111 ha Nueva Zelanda; magsumat han mga kritikal nga panhitabo ha imprastraktura ngadto ha ACSC (1300 CYBER1).
  • Indya ug Asya-Pasipiko: Dial 112 ha India para han emerhensya nga pagbaton; igsumat ang mga insidente sa seguridad sa dampog o surudlan sa CERT-In (incident@cert-in.org.in) ha sakob han obligado nga 6-oras nga bintana.

Agsob igpakiana .

Nagbubuhat ba docker compose down -v tangtangon an tagbalay paghigot nga mga bungtod (./data:/var/lib/mysql) o mga tomo la nga Ginngaranan ngan Waray Ngaran nga Docker?

`docker compose down -v` LA an nagpapara han Ginngaranan nga mga tomo nga igindeklarar ha . `volumes:` seksyon han . `docker-compose.yml` ngan Waray ngaran nga mga tomo nga nakadukot ha mga surudlan .; ito diri gud nagpapara hin mga file ha sulod hin usa nga tagbalay nga paghigot (sugad han `- /opt/mysql_data:/var/lib/mysql` o . `- ./postgres_data:/var/lib/postgresql/data`). Kon an imo pagkomposo nga file naggamit hin host nga dalan nga nagtitikang ha . `/` o . `./`, kitaa ito nga folder ha host yana mismo: an imo mga file 100 porsyento pa nga waray maruba.

Kay ano nga . docker system prune --volumes buraon an akon kadamo han database han gin-undang ko la an surudlan hin 2 ka minuto ha pag-update hin usa nga baryable han palibot?

Hulat hin maopay an kaibahan han . `docker stop` ngan . `docker rm`: kon an usa nga surudlan . `Stopped / Exited` (makikita ha `docker ps -a`), `docker system prune --volumes` nagbubuhat diri buraa an mga tomo hito tungod kay an gin-undang nga surudlan nagtutudlok pa hito. Kondi, kon dumalagan ka . `docker rm ` (para himo-on utro an surudlan nga may bag-o nga mga bandera) o kon nakaagi ka . `docker system prune -a --volumes` (nga una nga nagpapara han ngatanan nga naundang nga mga surudlan ngan . katapos nagpapara han ngatanan nga mga tomo nga diri na nakadukot ha bisan ano nga surudlan), an tomo nagin "nagbibitay" an milisegundo an gin-undang nga surudlan ginkuha ngan ginpahid dayon katapos hito.

Mababawi ko ba an ginpara nga Docker nga kadamuon ha sulod han Docker Desktop ha usa ka Mac (Apple Silicon / Intel) o Bintana ( ).WSL2)?

Oo, kon mag-undang ka dayon ha Docker Desktop salit an virtual nga makina diri na magdalagan . `fstrim` kontra han virtual nga disk. Ha macOS, gintitipigan han Docker an ngatanan nga mga tomo han Linux ha sulod . `-/Library/Containers/com.docker.docker/Data/vms/0/data/Docker.raw`; ha Bintana WSL2, ha sulod . `%LocalAppData%\Docker\wsl\disk\docker_data.vhdx`. Kopyaha ito . `.raw` o . `.vhdx` file ngadto sa gawas nga SSD dayon, idugtong ini nga basahon la ha Linux (gamit `losetup -Pr` para `.raw` o . `qemu-nbd -r` para `.vhdx`), ngan dumalagan . `ext4magic` o . `PhotoRec` kontra han virtual . `ext4` partisyon ha sulod.

Ano man kon ginpara ko an usa nga Kubernetes nga Estado nga may . kubectl delete statefulset postgres? Ginpara liwat hito an akon mga PVC?

Diri. Pinaagi han kasagaran ha Kubernetes (gawas la kun `persistentVolumeClaimRetentionPolicy.whenDeleted: Delete` klaro nga gin-configure ha Kubernetes 1.27+), nga nagdadalagan . `kubectl delete statefulset` nagpapara han tagdumara han Estado ngaSet ngan han iya mga Pod, . pagbaya han ngatanan . `PersistentVolumeClaims` (`data-postgres-0`, `data-postgres-1`) ngan an ira nagpapailarom nga mga datos nga 100 porsyento nga waray maruba .. Ibutang la utro an imo . `StatefulSet` YAML nagpapakita nga may pareho nga ngaran ngan . `volumeClaimTemplates`, ngan an bag-o nga Pods awtomatiko nga magdudukot utro ha naeksister na nga . `data-postgres-0` Mga PVC.

Paano ako maka-access han mga file ha sulod han Docker . overlay2 direktoryo kon an surudlan nagdudumiri ha pagtikang (CrashLoopBackOff / Exited (1))?

Ayaw paraa an nahulog nga surudlan. Basta an gin-undang nga surudlan naeksister pa ha 2019. `docker ps -a`, an puydi igsurat hito nga layer ngan mga mount han kadamu bug-os nga waray maruba ha disk. Mahimo ka magkopya hin mga file nga direkta tikang ha gin-undang nga surudlan gamit an . `docker cp :/var/lib/postgresql/data /root/rescued_data`, o bilnga an eksakto nga host hito . `overlay2` dalan pinaagi han pagdalagan . `docker inspect --format '{{.GraphDriver.Data.UpperDir}}'` ngan pagbasa hito nga direktoryo hin direkta sugad nga . `root`.

Ano man kon may nagpara hin usa nga Kubernetes . Namespace (kubectl delete ns prod) ngan an ngatanan nga PVC may-ada . reclaimPolicy: Delete ha AWS EBS o GCP?

Kon an drayber han CSI han dampog (`ebs.csi.aws.com` o . `pd.csi.storage.gke.io`) napatay na . `DeleteVolume` tungod kay . `reclaimPolicy` amo an `Delete`, susiha dayon an tulo nga mga pukot nga katalwasan ha lebel han dampog: (1) susihon ** AWS Recycle Bin para han mga Tomo han EBS ** ha konsola han AWS EC2 (kon an usa nga lagda han pagtipig aktibo ha asoy / mga tag, an ginpara nga EBS nga kadamo nalingkod ha Recycle Bin ngan mahimo ibalik ha 1 nga pag-klik); (2) pag-usisa ** Mga Iskedyul han Pag-ipit han AWS / DLM / GCP ** para han pinakabag-o nga awtomatiko nga pag-ipit han kadamo; ngan (3) kitaa kon an imo datos nga datos nag-aawas hin mga WAL/binlog (`WAL-G`, `pgBackRest`, `Litestream`) ngadto sa usa ka balde nga S3/GCS.


Mga may kalabutan nga giya .


Mga surok ngan opisyal nga giya .

  • Kubernetes Opisyal nga Dokumento (kubernetes.io / Dampog nga Lumad nga Pagkumpyuter nga Pundasyon): * Pagtipig nga Butang sa Paggamit nga Pagpanalipod (kubernetes.io/pvc-protection Mga Tapuson), Pagbawi han Nagpadayon nga mga Tomo (Retain vs. Delete), ngan Pag-operate . etcd Mga kumpol para han mga Kubernetes (etcdctl snapshot restore)*.
  • (docs.docker.com): * Pagdumala sa Datos sa Docker: Mga Tomo, Mga Paghigot, . overlay2 Arkitektura han Drayber han Pagtipig, ngan Pag-utod nga Reperensya *.
  • An Linux nga Organisasyon (kernel.org): *An . /proc Sistema sa salin (procfs Abrihi an Pagbawi han Paghulagway han File pinaagi han . /proc/<pid>/fd/) ngan Ext4 nga Pagtudlok han Peryodiko *.
  • ext4magic Dokumento han Proyekto (ext4magic.sourceforge.net): * Forensic Inode ug Journal Transaction Recovery sa Ext3 / Ext4 Filesystems *.
  • Nasodnon nga Instituto sa mga Sumbanan ug Teknolohiya (NIST) (Estados Unidos): * Espesyal nga Publikasyon 800-190: Giya sa Seguridad sa Sudlan sa Aplikasyon & Pagbawi sa Insidente *.