कटलफ़िश: स्नैपशॉट और रीस्टोरेशन

Android 15 में, पेश है स्नैपशॉट लेने और कटलफ़िश वर्चुअल डिवाइस का स्नैपशॉट वापस लाएं. एक स्नैपशॉट लिया जा रहा है, कटलफ़िश डिवाइस की मदद से, डिस्क पर किसी इमेज में डिवाइस की स्थिति को सेव किया जा सकता है. इसके बाद, स्नैपशॉट को वापस लाया जा सकता है. ऐसा करके, क्यूटलफ़िश डिवाइस को पिछली बार सेव किया गया था या नहीं.

स्नैपशॉट का इस्तेमाल, अपने-आप काम करने वाले या मैन्युअल तरीके से किए जा रहे अलग-अलग वर्कफ़्लो में किया जा सकता है. टास्क कब शुरू होगा तो डिवाइस में बदलाव करने की प्रोसेस के दौरान, आप उसका स्नैपशॉट ले सकते हैं. ताकि आप डिवाइस को वापस किसी खास स्थिति में वापस ला सकें. उदाहरण के लिए, डिवाइस की स्थिति में बदलाव करने वाले टेस्ट सुइट चलाते समय और इसकी वजह से, नीचे दिए गए टेस्ट में समस्याएं आ सकती हैं या गड़बड़ियां हो सकती हैं. एक स्नैपशॉट लिया जा सकता है. इससे, डिवाइस को ताकि यह पक्का किया जा सके कि आगे की सभी जांच बिना किसी रुकावट के चलें.

एक अन्य उदाहरण वर्कफ़्लो जहां स्नैपशॉट उपयोगी होते हैं, जो कि ऐप का व्यवहार. के सेट के आधार पर किसी ऐप्लिकेशन के व्यवहार की जांच करते समय कार्रवाइयां, तो ऐप्लिकेशन के चलने के दौरान, कार्रवाइयों के बीच की अवधि के दौरान स्नैपशॉट लिया जा सकता है ताकि आपको उस स्नैपशॉट को वापस लाने के लिए, शुरुआत. उदाहरण के लिए, अगर किसी गेम को लॉन्च करने में काफ़ी समय लगता है, तो आपको मुख्य मेन्यू पर जाने के बाद स्नैपशॉट ले सकता है, ताकि आप डिवाइस को उस स्थिति में ले जाएं, ताकि लाने-ले जाने के समय को छोड़ दिया जाए.

कटलफ़िश डिवाइस का स्नैपशॉट लें

डिवाइस का स्नैपशॉट लेते समय, कटलफ़िश डिवाइस को निलंबित करना ज़रूरी है ताकि यह पक्का किया जा सके कि कटलफ़िश डिवाइस ठीक से काम कर रहा है. जब डिवाइस निलंबित कर दिया गया है, सभी vCPU और डिवाइस बंद हो गए हैं, और सभी बफ़र पुश VM को अपनी स्थिति बता सकता है. इसके बाद स्नैपशॉट, vCPU की स्थिति, मेमोरी, और डिवाइस की स्थिति को तय किए गए डेस्टिनेशन फ़ोल्डर में डिस्क पर सेव किया जाता है.

VirtiosFS काम नहीं करता है और स्नैपशॉट लेते समय इसे बंद करना ज़रूरी है. यहां की यात्रा पर हूं VirtioFS बंद करें, तर्क पास करें cvd start को चलाते समय --enable_virtiofs=false.

सिर्फ़ SwiftShader (guest_swiftshader) जीपीयू मोड काम करता है स्नैपशॉट. अन्य एक्सेलरेटेड ग्राफ़िक मोड समर्थित नहीं हैं.

कटलफ़िश डिवाइस को लॉन्च करने की प्रोसेस के बारे में यहां बताया गया है और स्नैपशॉट लें.

  1. VirtioFS को बंद करते समय डिवाइस लॉन्च करें. (इसके बाद, डिवाइस का इस्तेमाल किया जा सकता है.)

    cvd start --enable_virtiofs=false --gpu_mode=guest_swiftshader
    
  2. इन फ़्लैग के साथ cvd snapshot_take चलाकर स्नैपशॉट लें:

    • --force: अगर तय किए गए स्नैपशॉट पाथ पर फ़ोल्डर मौजूद है, तो यह फ़्लैग की मदद से यह पक्का किया जा सकता है कि मौजूदा फ़ोल्डर मिटा दिया गया है. साथ ही, स्नैपशॉट वाले पाथ में बनाया जाता है

    • --auto_suspend: स्नैपशॉट लेने से पहले डिवाइस को निलंबित कर दिया जाता है और स्नैपशॉट लेने के बाद, डिवाइस को फिर से चालू कर देता है.

    • --snapshot_path: बताया गया पाथ जहां नया फ़ोल्डर बनाया जाता है पर क्लिक करें.

    cvd snapshot_take --force --auto_suspend \
    --snapshot_path=PATH
    

कटलफ़िश डिवाइस को वापस लाना

किसी कटलफ़िश डिवाइस स्नैपशॉट को वापस लाने के दौरान, जो स्नैपशॉट लिया गया था उसे बंद करना चाहिए. अगर इंस्टेंस पहले से ही मौजूद है रोक दिया गया है, तो आगे कोई कार्रवाई करने की ज़रूरत नहीं है और स्नैपशॉट को वापस लाया जा सकता है.

कटलफ़िश डिवाइस के स्नैपशॉट को वापस लाने के लिए, cvd start की मदद से डिवाइस लॉन्च करें और स्नैपशॉट पाथ शामिल करें. अगर कटलफ़िश की बेस इंस्टेंस संख्या जिस डिवाइस पर स्नैपशॉट लिया गया है वह बेस इंस्टेंस से अलग है मौजूदा कटलफ़िश इंस्टेंस की संख्या, उस बेस इंस्टेंस को पास करें नंबर डालें.--base_instance_num

cvd start --snapshot_path=PATH \
--base_instance_num=ID

कटलफ़िश डिवाइस को निलंबित करना

स्नैपशॉट लिए बिना कटलफ़िश डिवाइस को निलंबित किया जा सकता है (डिस्क में स्टोरेज नहीं है) का इस्तेमाल राज्य को सेव करने के लिए किया जाता है). कटलफ़िश डिवाइस को निलंबित करने के लिए, इसे चलाएं:

cvd suspend

कटलफ़िश डिवाइस को फिर से शुरू करना

निलंबित किए गए कटलफ़िश डिवाइस को फिर से चालू करने के लिए, इसे चलाएं:

cvd resume

स्नैपशॉट लेने/वापस लाने की सुविधा की पुष्टि करें

स्नैपशॉट/वापस लाने की सुविधा की पुष्टि करने के लिए, नीचे दिया गया टेस्ट किया जा सकता है:

atest SnapshotTest