Hi.
When I read it like that, I can't help but wonder.
Making copies of images for such a large number of products is nonsense.
Let's count.
You have 3,000 products and each product has 5 thumbnails for one image.
There are 3 products in the package.
So by copying images you create 3000 x 5 x 3 = 450,000 images, which is approx. 17GB. If the product has multiple images, the result needs to be multiplied by the number of images.
The solution is to create your own table in the database and write the product id, the image id of the original product into it. And then create an override Product.php and function getImages().
The solution is always simple 😉
I'll write the override code when I get to the computer.