The use of virtualization technology has gradually changed the way a datacenter works in recent years. Nowadays the end-users of a datacenter do not access physical resources directly. Instead, they access virtualized resources, such as VMs and virtual clusters, on top of a pool of physical resources. This new computing paradigm provides the datacenter administrators a more flexible, scalable, manageable, and economical way for resource provisioning/sharing as prior study indicated. When a service on a VM encounters a massive amount of workload, it can scale faster than a non-virtualized datacenter, by dynamically turning on extra virtual/physical machines to share the workload. For example, OpenStack, an open source project for building a virtualized cloud platform, provides a reactive approach for auto-scaling. The approach creates new VMs to share workload when the workload of a monitored VM exceeds a given workload threshold. The weakness of the mechanism is that, sometimes it is too late to handle unexpected workload surges and thus can decrease the quality of the services running on the VM. To this end, we purpose an auto-scaling mechanism for OpenStack It relies on a predictive auto-scaling approach that predicts the upcoming workload by historical workloads. A reactive method is also used to reduce the impact of wrong workload prediction. To prevent the case that the prediction result is not accurate enough, we have verified the performance of our approach via experiments. The results show that, when a massive workload arrives, the proposed approach outperforms other approaches, and uses the same level of resources.