How to predict whether the client will renew the subscription or not based on given data structure
That data structure is fine. You need to have a dataset of historic subscriptions (I.E. subscriptions that have now finished), where the output variable is "Renewed/ Not renewed". You can train your model on that dataset and then make predictions each day as to whether or not each "Active" subscription is likely to be renewed when it reaches the end date.

As to what kind of model you can train, the "usual suspects" should be fine for this. LogisticRegression, XGBoost, RandomForests and so on can all handle this kind of problem.

EDIT

So lets say for example I have a 3 month subscription that runs from 1st Jan to 31st March. I decide to renew for another 3 Months until 30th June. I then renew again until 30th September. YOU have the same subscription from 1st Jan to 31st March, and you also renew until 30th June. You then decide NOT to renew. In that case, your data should look like this:



The Status column shows subscriptions which are Finished, and which are active. You should train the model against Finished subscriptions only and make predictions against Active ones. The target variable is the "Renewed" feature. For testing purposes you should split the Finished subscriptions into a 75/25; train the model on the 75% and test it against the 25%

Hope that clarifies.