Outside a shelter for the displaced in western Ukraine, 84-year-old retired schoolteacher Veronika recounts how she and her family had to travel more than 1,000 kilometres to safety.

They fled Russian fire on their city of Bakhmut in the eastern Donbas region by bus and by train this week, as she turned 84.

"For my birthday, I left," she said.

Just hours after arriving during the night in the city of Lviv, Veronika sat in the spring sun, clutching a plastic cup of warm tea.

She had spent part of the morning sheltering in a cold basement after an air raid siren went off, and was trying to warm up again.

Millions of Ukrainians have fled their homes since Russia invaded on February 24, seeking shelter abroad or elsewhere in the country.

But for weeks on end, Veronika and her family stayed put.

Then last week near their home, "a military unit was hit, and the windows blown out of nearby houses. The neighbours left, but still I didn't understand" we should leave, she said, dressed in a thick red tracksuit.

"After a week, we began to think about it."

Ukraine has in recent days warned residents of the east to evacuate as soon as possible to escape a feared Russian assault.

Moscow has said its operation will focus on the Donbas, parts of which are controlled by pro-Moscow separatists, after withdrawing from areas surrounding the capital.

In the commuter town of Bucha, near Kyiv, reporters found dead bodies in civilian clothing littering the streets after the Russians left.

Veronika's daughter Alyona Andreyeva said seeing those images was a turning point.

Lviv's population has ballooned since the start of the war, and shelters for the displaced are dotted around the city
Lviv's population has ballooned since the start of the war, and shelters for the displaced are dotted around the city AFP / Yuriy Dyachyshyn

"When my parents saw what the Russians had done in Bucha, I went and prayed to God to help us," the 50-year-old music school accompanist said, tears in her eyes.

She said she feared residents of eastern Ukraine would be next.

They grabbed documents and valuables, picked up a small Pekingese dog they had rescued and left.

"We didn't know what to take with us. It wasn't clear how long... we would be gone," Andreyeva said.

She left behind her daughter, who sought shelter with her boyfriend's family in the Black sea city of Odessa.

"It's very hard," she said.

Lviv's population has ballooned since the start of the war, and shelters for the displaced are dotted around the city.

The one where Andreyeva's family is staying now houses more than 600 people, its manager said. At its peak it welcomed 900, but some have since moved on.

Inside one of its large rooms, people rest on a vast patchwork of thin mattresses.

Elsewhere in Lviv, young couples strolled in the sunny streets, basking in a little warmth after a second wave of winter.

On one stretch of pavement, women sold bunches of daffodils freshly plucked from their gardens. A few pedestrians had even stripped down to their t-shirts.

When the air raid sirens wail, after more than a month of war and relatively few air strikes in the west, many simply ignore the warning.

Andreyeva's father, 83-year-old Viktor, said it was his first time in Lviv.

"On the one hand it's enriching, but on the other it's a tragedy," he said.