The Tamils on board the ship said they were fleeing persecution in Sri Lanka, but Canadian authorities suspect some on board may have links to the Tiger rebels, defeated last year after a two-decades long war.
Sri Lankan media had earlier reported that the ship headed for Canada after being turned back from Australia, and that several other ships full of refugees are also on their way.
'Human smuggling operation'
Sri Lanka's high commissioner to Canada has asked the country to reject their refugee status, calling it a human smuggling operation linked to the rebels.
Local officials confirmed that two jails near the mainland metropolis of Vancouver had prepared space for the expected arrivals.
A vacant emergency ward has also been set aside in Victoria General Hospital for "triage, screening and diagnostics," hospital spokeswoman Shannon Marshall told AFP news agency.
Healthy migrants will be released back to federal authorities, Marshall said, "while those who require further care will be admitted to an area of the hospital that will be kept separate from the general population".
Carolyn Jack, a Canadian journalist, told Al Jazeera that there were reports the migrants have been at sea since May.
"That is nearly three months at sea in a cargo ship, and it's uncertain as to how healthy they are," she said.
There are also unconfirmed reports that one person died on the ship.
Many members of Sri Lanka's minority Tamil community allege discrimination in their homeland.
Sri Lanka has repeatedly rejected a United Nations probe into alleged rights abuses during the final stages of its long civil war, which ended with government troops defeating the Liberation Tigers of Tamil Eelam (LTTE), or Tamil Tigers, in May 2009.
According to the UN, at least 7,000 ethnic Tamil civilians were killed in the last four months of the civil war, while rights groups have accused the government of deliberately shelling civilians.