Fast MySQL Database Backups Without Harming Disk Performance

Configuring individual storage systems. Interacting with Google Cloud programmatically.

Your company runs several databases on a single MySQL instance. They need to take backups of a specific database at regular intervals. The backup activity needs to complete as quickly as possible and cannot be allowed to impact disk performance. How should you configure the storage?

  1. Configure a cron job to use the gcloud tool to take regular backups using persistent disk snapshots.
  2. Mount a Local SSD volume as the backup location. After the backup is complete, use gsutil to move the backup to Google Cloud Storage. Correct Answer
  3. Use gcsfise to mount a Google Cloud Storage bucket as a volume directly on the instance and write backups to the mounted location using mysqldump.
  4. Mount additional persistent disk volumes onto each virtual machine (VM) instance in a RAID10 array and use LVM to create snapshots to send to Cloud Storage
Answer Correct answer: B — Stage the mysqldump output on a Local SSD volume for maximum backup speed, then copy it to a Cloud Storage bucket with gsutil.

Community Insight

The question tests which storage tier absorbs backup write I/O; the trap is picking gcsfuse-mounted Cloud Storage, which streams backups slowly over the network and keeps the production database under load longer.

This Google Cloud PCA question asks how to back up a single MySQL database on a shared instance quickly, without degrading persistent disk performance. The correct design stages the mysqldump output on a locally attached SSD and then copies it to a Cloud Storage bucket with gsutil.

Option C is the most tempting wrong answer because gcsfuse avoids intermediate storage and mysqldump can target one database, but writing directly to Cloud Storage through a FUSE mount is far slower than Local SSD I/O and extends the window during which the source database is being read.

Community Discussion (146 comments)

hitmax87 👍 1 Selected: A
Correct answer is A. It is not B because Local SSDs are ephemeral (temporary) storage.
cloud_rider 👍 1 Selected: B
B is Correct Answer GCS FUSE performance - https://github.com/GoogleCloudPlatform/gcsfuse/blob/master/docs/benchmarks.md#sequential-write Local SSD Mount Performance - https://cloud.google.com/compute/docs/disks/local-ssd
david_tay 👍 1 Selected: A
Answer is A since B is not possible (local SSD can only be mounted during VM creation for MySQL).
Ekramy_Elnaggar 👍 2 Selected: D
Local SSDs can only be attached when the VM is being created.
Clouddude123 👍 1
D seems to be the right answer because 1) Local SSD cannot be added to a VM already running 2) GCSfuse is slow 3) Adding multiple Persistant Disks in RAID increases IOPs (Speed) to quickly get the job done 4) LVM is a linux tool used to make copy of file systems 5) The answer ends with moving data to GCS.
46f094c 👍 3 Selected: A
"A" is the only one which gives an automated way to do it. All the rest involves a person action
Saikatms 👍 2
I'll go with B
Santhoshsunkari 👍 2
B,https://cloud.google.com/compute/docs/instances/sql-server/best-practices#backing_up
bandegg 👍 1 Selected: C
It says a specific database, not all of it. Otherwise, why not just use the snapshots? They are no cost.
Tamim321 👍 1 Selected: C
You can only add local ssd to a VM during creation.Hence going with option C
Tamim321 👍 1
Refer to link - https://cloud.google.com/compute/docs/disks/local-ssd#:~:text=You%20can%20only%20add%20Local,the%20types%20that%20do%20not.
JC0926 👍 3 Selected: B
Option B would be the best choice for this scenario. Mounting a Local SSD volume as the backup location would ensure high performance and minimal impact on disk performance, while also allowing for quick backups. After the backup is complete, using gsutil to move the backup to Google Cloud Storage would provide a reliable and secure storage location for the backups. This approach is also cost-effective, as Local SSD volumes are less expensive than persistent disks.
Murtuza 👍 1
Local SSD are considered ephermeral and they are the most cost-effective and they are fast
NodummyIQ 👍 1
B is incorrect. The Local SSD volumes are only available on certain instance types, and they are not suitable for long-term storage as they are ephemeral and are deleted when the instance is deleted or stopped. For long-term storage, it is recommended to use persistent disks or Google Cloud Storage.
RVivek 👍 1
I guess umissed the second paryt of the answer B whic says "After the backup is complete, use gsutil to move the backup to Google Cloud Storage"
omermahgoub 👍 5
Option B is the most appropriate solution in this case. Mounting a Local SSD volume as the backup location will allow the backups to be taken quickly and efficiently, as Local SSDs have very high I/O performance and low latencies. Additionally, using gsutil to move the backups to Google Cloud Storage after they have been taken will provide a secure and durable storage location for the backups. A, configuring a cron job to use the gcloud tool to take regular backups using persistent disk snapshots, may not be the most efficient option because persistent disks have relatively lower I/O performance compared to Local SSDs. C, using gcsfuse to mount a Google Cloud Storage bucket as a volume directly on the instance and writing the backups to the mounted location using mysqldump, may not be the most efficient option because the backups would need to be transferred over the network, which could impact the performance of the backups.
omermahgoub 👍 1
D, mounting additional persistent disk volumes onto each VM instance in a RAID10 array and using LVM to create snapshots to send to Cloud Storage, may not be the most efficient option because it would require additional disk space and setup, and LVM snapshots may not be as fast as Local SSDs for taking backups.
minmin2020 👍 1 Selected: C
Gcsfuse needs local storage for caching, usually local/non-persistent disks are used for this purpose. With gcsfuse you can have the backend storage mounted as a filesystem on the server. Mysqldump allows for hot database backups. Option C provides the automated solution needed to backup and store the database. Option B is the manual version where you need to mount the local SSD, run the backup and then transfer it to a bucket manually.
AzureDP900 👍 3
I will go with B
Pradeepkumar 👍 4
https://cloud.google.com/compute/docs/instances/sql-server/best-practices#backing_up When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket. Though it is mentioned for SQL Server, the best practices are common for most of the databases. Also it is assumed that the Local SSD are already mounted while creating the VM
RVivek 👍 1
Locall SSD is used for backup to improve performnace. Later the backup will be moved to Cloud storage using gsutil
xman3 👍 2 Selected: C
>backups of a specific database
Ric350 👍 5
B - I think this will clear things up. Local SSD is ATTACHED when CREATING the VM. The local SSDs are just LOCATED (on the physical host) where the VM is running. See here. https://cloud.google.com/compute/docs/disks/add-local-ssd#create_local_ssd You can have a VM with locally attached SSD in an unformatted and unmounted state or just not mounted! Maybe it was umounted and now needs to be re-mounted? Answer B says to MOUNT the local SSD. MOUNTING the SSD is done when the VM is RUNNING! We need to assume the VM was built with locally attached SSD but not formatted and mounted yet. See here. https://cloud.google.com/compute/docs/disks/add-local-ssd#format_and_mount_a_local_ssd_device!
n_nana 👍 1
This clear confusion, Thank you.
Ric350 👍 3
Also, When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket. See here under "formatting secondary disks, backing up." https://cloud.google.com/compute/docs/instances/sql-server/best-practices#formatting_secondary_disks
Nirca 👍 2 Selected: B
It is B. Writing to Local SSD and the fasted method. (Expansive too) Coping from SSD to GCS is slow, yet not affecting the database.
H_S 👍 4 Selected: C
The only way to have a specific data base backup is mysqldump mates trust me I am a data person it can't be anything else than C
cmamiusa 👍 5 Selected: B
Backing up Best practice: https://cloud.google.com/compute/docs/instances/sql-server/best-practices When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket.
SAMBIT 👍 2
https://cloud.google.com/database-migration/docs/mysql/mysql-dump
SAMBIT 👍 2
Mysqldump does export. All other means do a backup. Backup doesn’t let select specific DB which is the ask. So, answer is C.
SAMBIT 👍 1
So every day one will attach a SSD & run gsutil to complete the work. Not practical. Hence option B is rejected.
gcp_guy 👍 1
B: https://cloud.google.com/compute/docs/instances/sql-server/best-practices
kapara 👍 1
B Is the right answer. When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket.
yeahlon 👍 4 Selected: B
Backing up Best practice: Have a plan for backups and perform backups regularly. Ola Hallengren's site provides a good starting point for understanding how to implement a solid backup and maintenance plan. When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket. https://cloud.google.com/compute/docs/instances/sql-server/best-practices
KevPinto 👍 1 Selected: C
Local SSDs only cannot be mounted on a Running Instance-- Also a Single local SSD has a capacity of 375 GB -- Writing to a local SSD risks running out of Space if the Backup > 375 GB -- GCS is unlimited
esnecho 👍 1
Answer B
vincy2202 👍 3 Selected: B
B is the correct answer https://cloud.google.com/compute/docs/instances/sql-server/best-practices#moving_data_files_and_log_files_to_a_new_disk
shindeswap 👍 3
B https://cloud.google.com/compute/docs/instances/sql-server/best-practices From the Docs: When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket
Bobch 👍 2 Selected: B
B is correct
joe2211 👍 3 Selected: B
vote B
rottzy 👍 1
local SSD - Bad choice for backup Local SSDs are suitable only for temporary storage such as caches, processing space, or low value data. To store data that is not temporary or ephemeral in nature, use one of our durable storage options. https://cloud.google.com/compute/docs/disks/local-ssd gcfuse wouldn't cut it either - latency why not A, if regular backup is required here? on a timely schedule
blitzzzz 👍 5
who what to backup to a local SSD. If your instance is down, you lost all data.
S_marquez 👍 1
No you can not, attached them once the VM is running, you can only add them while creating the VM https://cloud.google.com/compute/docs/disks/add-local-ssd#create_local_ssd
nymets 👍 3
No, you cannot attach a local SSD after the instance is created. "Because Local SSDs are located on the physical machine where your virtual machine instance is running, they can be created only during the instance creation process." The above is from https://cloud.google.com/compute/docs/disks/local-ssd#formatandmount
sudarchary 👍 2
"C" is correct. . Local SSD cannot be mounted on running VMs
pr2web 👍 2
You're incorrect. Local SSDs can be mounted on a running VM just fine. Just be aware of the limitations if you shutdown/stop the VM then the ephemeral Local SSD will lose all data. Yes they can. That's precisely why it makes Local SSD a good scratch / temp storage with very high IOPS. https://cloud.google.com/compute/docs/disks/local-ssd#formatandmount Answer B is indeed correct.
SerGCP 👍 2
The local SSD can be created only during the VM creation process. After than you can mount disk for in the destination path for export mysqldump. gsutil is the supported tool that you may used to migrate the dump to bucket.
JasonL_GCP 👍 2
Good point, Because Local SSDs are located on the physical machine where your virtual machine instance is running, they can be created only during the instance creation process
pr2web 👍 2
In addition the mysqldump command can be run with local ssd as destination, and NOT impacting existing DB performance by using the --databases dbname --single-transaction flag. That said, this boils down to which is quicker to complete, a local SSD dump and gsutil to gs://bucket OR gcsfuse the bucket directly on the VM, and mysqldump with the --single-transaction command
pr2web 👍 2
Yes they can. That's precisely why it makes Local SSD a good scratch / temp storage with very high IOPS. https://cloud.google.com/compute/docs/disks/local-ssd#formatandmount
hdlife 👍 1
Got most of the Qs from here, good help. Got Qs on MountKirk Game and HRL case studies around 12-13 Qs
purushi 👍 1
B is ok, but what about backup at regular intervals. Are we missing cron job here?
AWSPro24 👍 1
I considered this but why snapshot the whole disk when you just need one DB from one instance.
bala786 👍 2
Option B is correct
VishalB 👍 5
Correct Ans B - https://cloud.google.com/compute/docs/instances/sql-server/best-practices#backing_up When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket.
victory108 👍 2
B. Mount a Local SSD volume as the backup location. After the backup is complete, use gsutil to move the backup to Google Cloud Storage.
un 👍 2
B is correct
jchacana 👍 4
My reason to say C is that in order to perform a "specific database backup" you need to go with a mysqldump command. Other alternatives are all or nothing
kakarooky 👍 1
B is not. What if VM is restarted after backup done before uploading to Cloud Storage?
pr2web 👍 1
The important things is to understand the limitations of a Local SSD. If its a one time thing then yes it'll be the best option. A repeatable option requires something like Filestore instead of Local SSD, to persist through Stop/Starts. However, a local SSD will persist through a reboot. https://cloud.google.com/compute/docs/disks/local-ssd#formatandmount
ansh0692 👍 3
for B, I understand the "quick" part but what about backup of a specific database and in regular interval of times, (mounting local SSD seems manual and it's whole MySQL instance instead of just 1 database, overkill of storage) Because of these reasons I think it's C
mrhege 👍 1
It's B. Mysql has to do the backup to capture those changes too that might not have been flushed to disk yet, so A and D is ruled out. GCSFUSE is sloooow, so that leaves us with option B.
lynx256 👍 1
IMO - B is ok
Ausias18 👍 2
I'll go with C
AD3 👍 6
C is the correct answer because it's asked that "backup specific database". The mysqldmp provides option to backup specific database.
kartikjena31 👍 2
B is correct Answer
padma29 👍 1
Hi, Have you cleared the exam? Did your paper had questions from this site?
nitinz 👍 3
Please read the question. The backup activity needs to complete as quickly as possible and __cannot be allowed to impact disk performance__. How should you configure the storage? B. Mount a Local SSD volume as the backup location. After the backup is complete, use gsutil to move the backup to Google Cloud Storage. fuse is slow.... Take backup on SSD which is the fastest way and then use gsutil to copy it over at slow speed of network. Best answer is B
sekhrivijay 👍 5
B is correct Documentation from GCP https://cloud.google.com/compute/docs/instances/sql-server/best-practices Best practice: Have a plan for backups and perform backups regularly. Ola Hallengren's site provides a good starting point for understanding how to implement a solid backup and maintenance plan. When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket.
Darzan 👍 1
B is the correct answer. C: with C the throughput may be reduced. (google docs): Cloud Storage FUSE has much higher latency than a local file system. As such, throughput may be reduced when reading or writing one small file at a time. Using larger files and/or transferring multiple files at a time will help to increase throughput.
raz 👍 2
"When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket."
nherrerab 👍 1
B is correct. https://cloud.google.com/sql/docs/mysql/backup-recovery/backups
bnlcnd 👍 2
B could be OK. But the wording is vague. "Backup" is so vague. Not fit the required backup specific database. C is clearer. Maybe gsfuse is not fastest. but it is OK and no need to move data again. what's more, it explicitly saying to use db dump command. This is the way to backup specific database not the whole DB engine.
HKim 👍 1
This is a bit ambiguous question. Option C actually does impact the disk performance because of how gcsfuse is implemented. New and modified files are locally written in a temporary directory in their entirety then transferred to GCS. Therefore, while mysqldump is creating dump files, those dump files will be written to a temp directory before sent to GCS thus potentially violating the "cannot be allowed to impact disk performance" part of the question depending on the temp dir location. Option B will avoid impacting the disk performance of the file system but will require the restart of the VM. Since the question does not state uninterrupted operation, B seems to be more reasonable.
Arimaverick 👍 2
I think its A. Because regaular snapshots using cron will take less time as incremental backups will be taken and with instance running. B: How do you mount Local SSD in the existing instance? C: Cloud Storage FUSE could work however as per the documentation: "Performance: Cloud Storage FUSE has much higher latency than a local file system. As such, throughput may be reduced when reading or writing one small file at a time. Using larger files and/or transferring multiple files at a time will help to increase throughput." So should take time while backing up. D: Mounting additional PDisk in VM and use gsutil might be too much to ask for.
mgm7 👍 1
For B, it isn't only a question if you can mount the SSD, which you can, but what do you do with it once you mount it!? Do a dump of the DB hence read the DB? What does it matter if you are writing to SSD if you need to read the whole DB from "regular" disk? I agree it is A simply because as you say it utilizes snapshots which are faster than any copy backup operation and because it is the ONLY method which mentions how to schedule periodic backups
Prakzz 👍 1
It should be D as it is talking about a regular backup not a one time backup
Surjit24 👍 1
Since backup has to be taken at regular intervals for a specific database either of B and C can work. If the database is very big then B will be better.
svjl 👍 1
B: Cloud Storage FUSE has much higher latency than a local file system. The gsutil rsync command can be particularly affected by latency because it reads and writes one file at a time. Using the top-level -m flag with the command is often faster than fuse Small random reads are slow due to latency to first byte (don't run a database over Cloud Storage FUSE!) https://cloud.google.com/storage/docs/gcs-fuse
pepYash 👍 2
C is correct. https://cloud.google.com/compute/docs/disks/local-ssd#create_local_ssd
mexblood1 👍 2
As Local SSD can only be added during vm creation, I will choose C. But in real life I would be adding a SSD Persistent disk for backups and then move to Cloud Storage.
aloha 👍 1
it doesn't say "add" it says "mount" which can be the command... so it probably has already had it attached, doesn't need to stop the VM
gcparchitect007 👍 1
I think the correct answer is C since FUSE is the open-source used to mount any GCS bucket on Linux VM or Mac OS servers as a file system server. https://cloud.google.com/storage/docs/gcs-fuse
Aru23 👍 1
C is the correct ans.Use gcsfuse to mount a Google Cloud Storage
Aru23 👍 1
B is correct
certificatores 👍 1
it does not say the running instance but the question is not clear. the answer can be C or B depending on how you interpret.
whitley030390 👍 1
Hard to argue that B isn't correct since gcp's best practices indicate that it is.
AshokC 👍 1
B is correct
itsmebharat 👍 1
B is correct "When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket." https://cloud.google.com/compute/docs/instances/sql-server/best-practices
Ale1973 👍 1
For me the correct answer is B. A: discarded because the backup of a specific database is requested. C: Discarded because "he backup activity needs to complete as quickly as possible" and GCS bucket is not a high performance option D: discarded because it does not make sense for me XDDDDD
Pupina 👍 1
It is not A because gcloud sql backups create is for the hole instance. D is out because is a linux software-based RAID-like system. B does not mention the type of backup so I can assume that this type of backup could be for one database and faster than option c. So i go with B.
jespinosar 👍 2
I think B) is right because: B) ok because Local SSD might be aggregated up to 9 TB (24 disks of 375 GB), enough for MySQL D) talks about RAID 10, but you cannot configure any RAID config on persistent disks. You can only choose Zonal or Regional (Raid 1) C) uses GCS Fuse that by definition is NOT efficient regarding VM resources. B) takes 2 steps, but the first one (Disk writing) is hardware, no penalty on main disk. The second one (GCS transfer) is Network transfer on Google's private Network B) is ok because we are talking of backups. Even if you miss a backup is not a big deal, so, we are in a situation where preemption is acceptable * B) Local SSD is the fastest way of writing from an app to disk. So, MySQL will be liberated sooner.
Bolek 👍 2
You cannot attach local SSD if an instance is already running. C is better.
fraloca 👍 2
the solution si B: https://cloud.google.com/compute/docs/instances/sql-server/best-practices#backing_up
Vodor 👍 1
It should be D: Mysqldump provide “Multi-threaded parallel processing of schemas and object to speed the dumping process” https://mydbops.wordpress.com/2015/10/14/getting-started-with-mysqlpump-2/ Performance: Cloud Storage FUSE has much higher latency than a local file system. As such, throughput may be reduced when reading or writing one small file at a time. Using larger files and/or transferring multiple files at a time will help to increase throughput. Individual I/O streams run approximately as fast as gsutil. https://cloud.google.com/storage/docs/gcs-fuse Option B => max(speed limit of the write in the disk VS reading from the current databases –reading from disk is faster that write, but assuming that the database is in use could not be the case of the free resources) + max (speed limit for the gsutil in parallel of 10 files VS reading from SSD) Option D => speed limit for the gsutil in parallel of as many files as Mysqldump provide Assuming that the level of parallelism of Mysqldump is equal or more than 10, which is the parallelism that gsutil provide, I will chose D.
RajHari 👍 2
B for sure
zzaric 👍 1
B for sure
RM07 👍 3
Correct Ans is C. Please refer https://cloud.google.com/storage/docs/gcs-fuse
gianberg 👍 1
"Individual I/O streams run approximately as fast as gsutil." Answer B has also to dump to the SSD + moving dump file with gsutil, then double job
Karna 👍 1
Cloud Storage FUSE has much higher latency than a local file system. Using larger files and/or transferring multiple files at a time will help to increase throughput.
saurabh1805 👍 1
C is correct answer for this. You can refer below link for more details, it does not say directly but gives hint on how gsfuse to be used with cloud storage for exporting backup.
mlantonis 👍 1
I am not quite sure which one between B or C is correct.
iamgcp 👍 1
B cannot be the answer. https://cloud.google.com/compute/docs/disks/local-ssd#create_local_ssd Because Local SSDs are located on the physical machine where your virtual machine instance is running, they can be created only during the instance creation process. So, option C seems to be correct.
HectorLeon2099 👍 1
I'l go with B. Cloud Fuse is never the answer. Is not ready for a productive environment.
syu31svc 👍 7
Answer is B hands down --> https://cloud.google.com/compute/docs/instances/sql-server/best-practices#backing_up Use the local SSD to stage your backups and then push them to a Cloud Storage bucket.
gfhbox0083 👍 1
B, for sure
asure 👍 1
Mount a Local SSD volume as the backup location. After the backup is complete, use gsutil to move the backup to Google Cloud Storage. This is similar scenario described as Multitiered backup recommended by Google. Disaster Recovery Cookbook https://cloud.google.com/solutions/disaster-recovery-cookbook
aloha 👍 2
The question says "mount" not "attach", so the local SSD may have already attached, we just need to "mount /dev/sdb1 /mnt/temp" mount the volume? The question itself may has already misleaded us... lol
Nirms 👍 1
B is the correct answer
Ziegler 👍 1
mysqldump doesn't usually consume much CPU resources on modern hardware as by default it uses a single thread. This method is good for a heavily loaded server. Disk input/outputs per second (IOPS), can however increase for multiple reasons. When you back-up on the same device as the database, this produces unnecessary random IOPS. The dump is done sequentially, on a per table basis, causing a full-table scan and many buffer page misses on tables that are not fully cached in memory. It's recommended that you back-up from a network location to remove disk IOPS on the database server, but it is vital to use a separate network card to keep network bandwidth available for regular traffic. Although mysqldump will by default preserve your resources for regular spindle disks and low-core hardware, this doesn't mean that concurrent dumps cannot benefit from hardware architecture like SAN, flash storage, low write workload. The back-up time would benefit from a tool such as MyDumper.
AD2AD4 👍 1
Final Decision to go with C as per the discussion
amralieg 👍 1
Answer is B
jamjam2020 👍 1
B is the answer
deaglee 👍 4
I'd go for B, C seems wrong because: 1. mportant: Cloud Storage FUSE is a Google-developed and community-supported open-source tool, written in Go and hosted on GitHub. Cloud Storage FUSE is governed solely by the Apache License and not by any other terms or conditions. It is distributed as-is, without warranties of any kind. 2. Performance: Cloud Storage FUSE has much higher latency than a local file system.
misho 👍 3
I think the answer is "C" because: in "B" you have to write to the SSD one time and then transfer to GCS in "C" you write directly to GCS There is no way that "B" is faster than "C". Also if you stop the VM instance the local before the dump is transferred to GCS, the dump will be lost.
pawel_ski 👍 1
In B you backup only an increment, but in C you dump the whole db. B is faster and requires less space on GCS.
huangmeiguai 👍 2
I think it's B, because 1) it mentioned one DB inside a MySQL instance, which means they DONT want you to back up the entire disk; 2) "as quickly as possible".
Ziegler 👍 3
A is the answer and the preferred GCP approach. B and C are good candidates but unfortunately for the following reasons - Local SSDs can only be created during instance creation process and the volume is good for data that is ephemeral in nature (B is wrong for that reason); gcsfuse is not a GCP supported service but a community supported service that you use at your own peril (C is a wrong choice as well). Considering that we are talking of database backup which is expected to be reliable, using a cron job to schedule backup to cloud (using gsutil). This is an effective GCP file transfer supported service. https://cloud.google.com/compute/docs/disks/local-ssd https://cloud.google.com/compute/docs/disks/local-ssd#create_local_ssd https://cloud.google.com/storage/docs/gcs-fuse
Ziegler 👍 2
Forget about my previous answer, C is my updated choice.
clouddude 👍 5
I choose C because it's the only answer that let's you dump one specific database.
Gini 👍 3
The answers are very confusing but I would choose C as the question states "need to take backups of a specific database", mysqldump allows you to specify the database you want to do a backup. B is a potential answer but it only mentions "backup" which I am afraid it means the whole backup of the instance.
tomvik 👍 1
Local SSD has some disadvantages for mounting 1. VM can not be stopped if it has SSD mounted 2. Local SSD can not be mounted if VM is already created . For this question though B seems to be right as it is quick approach to take backups
Rafaa 👍 2
You cannot attach local SSD if an instance is already running.
gcp_aws 👍 1
B is the answer.
Rathish 👍 16
Ans: B Persistent Disk snapshot not required: "They need to take backups of a specific database at regular intervals." "The backup activity needs to complete as quickly as possible and cannot be allowed to impact disk performance." This can be achieved by using both Local SSD & GCS Fuse (mounting GCS as directory), but as the question stats needs to complete as quickly as possible. General Rule: Any addition of components introduce a latency. I could not get write throughput of GCS & Local SSD, even if we consider both provides same throughput, streaming data through network to GCS Bucket introduce latency. Attached Local SSD has advantage in this case, since there is no network involved. From Local SSD to GCS bucket - copy job does not impact the mysql data disk.
mwilbert 👍 2
There's not necessarily anything wrong with disk snapshots for a DB backup (depends on your recovery requirements) but this question specifically talked about backing up one particular database so a snapshot isn't going to meet the criteria.
2g 👍 4
answer: C Please replace gcsfise by gcsfuse
natpilot 👍 3
B is fine.
rockstar9622 👍 1
B) is correct
AWS56 👍 3
Agree with B
cloudryder 👍 4
The requirement said "as quickly as possible and cannot be allowed to impact disk performance", and anything other than A will impact disk performance and cannot be as fast as A.
bnlcnd 👍 1
But, the question also want you to backup specific database on this instance. Can you take snapshot on a specific database? I guess snapshot is on disk. Whole disk of the DB instance will be saved in the snapshot
mpguard 👍 3
Tell me you didn't just recommend disk snapshots for DB backup.
JJu 👍 10
i think answer is B.
hannibal1969 👍 54
I think it's B. If you use a tool like GCFUSE it will write immediatly to GCS which is a cost benefit because you don't need intermediate storage. In this case however "Quickly as possible" key for understanding. GCFUSE will write to GCS which is much slower than writing directly to an added SSD. During the write to GCS it would also execute reads for a longer period on the production database. Therefor writing to the extra SSD would be my recommended solution. Offloading from the SSD to GCS would not impact the running database because the data is already separated.
kvenkatasudhakar 👍 3
We cannot attach and mount a local SSD to a running instance. I think it's C (GCFUSE)
heelhook_ambassador 👍 1
Thanks!
raf2121 👍 4
Point for Discussion Can local SSD be mounted in a running instance.
AWS56 👍 2
C is the Answer
JoeShmoe 👍 2
A is preferred GCP approach but gcsfuse is preferred for mysql
KouShikyou 👍 7
In case of SQL server, B is correct. Does it also work for MySQL? https://cloud.google.com/compute/docs/instances/sql-server/best-practices
kaush 👍 7
Best practice: Have a plan for backups and perform backups regularly. Ola Hallengren's site provides a good starting point for understanding how to implement a solid backup and maintenance plan. When taking regular database backups, be careful not to consume too many persistent disk IOPS. Use the local SSD to stage your backups and then push them to a Cloud Storage bucket.
Eroc 👍 1
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
Ananthtm 👍 1
This clearly states that "For large-scale backup and restore, a physical backup is more appropriate, to copy the data files in their original format that can be restored quickly". so, mysqldump is not the best option. disk backups are. Local SSD would be fastest
tartar 👍 6
B is ok
deaglee 👍 1
Anything particular you are pointing in the article? At least I am unable to find anything useful for this question.

Comments & Corrections

No comments yet — spotted an error or have a note? Share it below.

Log in to comment, report an error, or add a note about this question.

Submitted for moderation before publishing. Keep it helpful and respectful.

Expert Analysis

Why the Answer Is Correct

Option B matches Google's own documented best practice for database backups on Compute Engine: stage the backup on a Local SSD and then push it to a Cloud Storage bucket. Local SSDs are physically attached to the host running the VM and deliver very high IOPS and low latency, so a mysqldump of a specific database finishes quickly, minimizing the time the production MySQL instance spends reading data for the backup. Because the write goes to the local device rather than the boot/data persistent disk, the persistent volumes serving production queries see essentially no additional write pressure, satisfying the "cannot be allowed to impact disk performance" constraint. Once staged, gsutil (or a lifecycle/transfer step) moves the file to Cloud Storage for durability, giving you both speed and long-term, redundant retention.

Why the Other Options Are Wrong

Option A uses persistent disk snapshots, which capture an entire disk image rather than one selected database, and the snapshot read activity is performed against the same persistent disk that serves production traffic — exactly the disk impact the requirement forbids. Option C writes through gcsfuse directly into a Cloud Storage bucket; FUSE-backed writes are network-bound and much slower than local SSD writes, so the backup runs longer and the database remains under sustained read load, which is why commenters flagged "quickly as possible" as the deciding phrase. Option D adds RAID10 volumes plus LVM snapshot plumbing on persistent disks, which adds cost and operational complexity without removing the backup I/O from the production disks, and LVM snapshots still stress the underlying volumes during creation. It also over-provisions storage for every VM when only one database on one instance needs periodic backup.

Community Comment Notes

The community converged strongly on B, with Hannibal1969 explaining that "GCFUSE will write to GCS which is much slower than writing directly to an added SSD" and that it "would also execute reads for a longer period on the production" database. Rathish added that while Local SSD plus gcsfuse could combine speed and direct-to-GCS durability, the phrase "needs to complete as quickly as p..." pushes the answer toward staging on Local SSD. syu31svc and kaush both cited Google's documented guidance to "use the local SSD to stage your backups and then push them to a Cloud Storage bucket." A minority, AD3, argued for C on the grounds that "the mysqldmp provides option to backup specific database," but that confuses the tool choice (mysqldump, used in both B and C) with the storage design, which is what the question actually asks.

Official Reference

Exam Strategy

Read the non-functional constraints first — "as quickly as possible" and "cannot impact disk performance" — and map them to the fastest local storage tier that is then offloaded to durable object storage. Eliminate any option whose I/O lands on the same persistent disk serving production or that streams over the network for the entire backup window.

Frequently Asked Questions

Why is gcsfuse-mounted Cloud Storage (option C) wrong for fast MySQL backups?

Writing through gcsfuse is network-bound and far slower than Local SSD I/O, so the backup runs longer and the production database stays under read load for more time. Local SSD staging plus gsutil gives the fastest completion, which the question explicitly demands.

Why not use persistent disk snapshots to back up just one database?

Cloud Persistent Disk snapshots capture an entire disk image, not a single logical database, and the snapshot process reads from the same persistent disk serving production traffic. That violates the requirement that backup activity must not impact disk performance.

More PCA FAQ →

Related Analysis

Practice All PCA Questions

Access 81 questions with complete answers and detailed explanations.

View Full PCA Practice Test →

← Back to PCA Study Guide