If you are using sklearn wrapper of XGboost, you can use pickle or joblib module.
Using pickle:
import pickle
bst = xgb.XGBClassifier(**param).fit(trainData.features, trainData.labels)
filename = 'global.model'
# to save the model
pickle.dump(bst, open(filename, 'wb'))
# to load the saved model
bst = pickle.load(open(filename, 'rb'))
Using Joblib:
import joblib
bst = xgb.XGBClassifier(**param).fit(trainData.features, trainData.labels)
filename = 'global.model'
# to save the model
joblib.dump(bst, open(filename, 'wb'))
# to load the saved model
bst = joblib.load(open(filename, 'rb'))
If you are using core XGboost, you can use functions save_model() and load_model() to save and load the model respectively.
dtrain = xgb.DMatrix(trainData.features,label=trainData.labels)
bst = xgb.train(param, dtrain, num_boost_round=10)
filename = 'global.model'
# to save the model
bst.save_model(filename)
# to load the saved model
bst = xgb.Booster({'nthread':4})
bst.load_model(filename)